0

我想设置对话框中所有元素的背景颜色,该对话框具有matchedOn.

我有以下代码:

$('.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>

所以在我的情况下,标签六应用了样式,但不是在 tab7

4

2 回答 2

1

The problem is that your code block is executed only once when the other tabs are hidden. Your code should also execute when the other tabs become active in order to change the CSS on visible items. You could intercept the activate event and execute your code in it:

$('.yourtabdiv').tabs({
    activate: function() {
        $('.matchedOn').each(function() {
            if($(this).html() == matchedItem) {
                $(this).css({ "color": "green", "background-color": "#FFFF00" });
            }
        });
    });
于 2013-07-31T11:36:35.010 回答
1

查看:

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

演示

于 2013-07-31T11:38:26.150 回答