2013-07-31 62 views
0

我想设置一个对话框中的所有元素的背景颜色,其类别为matchedOnJquery Modal和css样式

我有以下代码:

$('.matchedOn').each(function() { 
    if ($(this).html() == matchedItem) { 
    $(this).css({ "color": "green", "background-color": "#FFFF00" }); 
    } 
}); 

matchedItem是用于检查该元素的内容的本地变量。例如,如果任何元素的类别为matchedOn,包含'Fred',其中'Fred'为matchedItem,则设置必要的CSS。

这适用于我的模式中的第一个标签。但是,即使我在第二个选项卡上定义了类,但使用'Fred'时,css不适用。

我有jquery代码,毕竟HTML被绘制到模态,所以它不是检查不存在的东西的问题。

*编辑** 嗨它是敏感的数据,所以我不能显示这一切。然而,每个标签具有以下

<div id="tab6"> 
      <div id="results1"> 
       <div class="message"> 
        <h2>title</h2> 
        <pre> 
        <dl> 
        <dt>Heading</dt> 
        <dd class="matchedOn">Fred</dd> 
        </dl> 
        </pre> 
       </div> 
      </div> 
     </div> 
     <div id="tab7"> 
      <div id="results2"> 
       <div class="message"> 
        <h2>title</h2> 
        <pre> 
        <dl> 
        <dt>Heading</dt> 
        <dd class="matchedOn">Fred</dd> 
        </dl> 
        </pre> 
       </div> 
      </div> 
     </div> 

所以在我的情况,标签6具有应用该样式,而不是在tab7

+1

我们能不能请参阅HTML结构? – Spokey

回答

1

的问题是,你的代码块只有当其他选项卡执行一次隐。当其他选项卡变为活动状态以便更改可见项目上的CSS时,您的代码也应该执行。你可以拦截activate事件,并在其中执行代码:

$('.yourtabdiv').tabs({ 
    activate: function() { 
     $('.matchedOn').each(function() { 
      if($(this).html() == matchedItem) { 
       $(this).css({ "color": "green", "background-color": "#FFFF00" }); 
      } 
     }); 
    }); 
+0

Emir,不确定此选项是否可用,因为mactedItem在此级别不可用。 matchedItem,在WebMethod msg.d对象中设置,这是构建HTML其余部分的地方 – CSharpNewBee

1

检查:

$('.matchedOn:contains("'+matchedItem+'")').css({ "color": "green", "background-color": "#FFFF00" }); 

Demo