遍历表的所有子元素并重置背景颜色

时间:2014-01-16 17:44:27

标签: javascript jquery dom iteration

我有一张桌子,里面有许多其他表格和行以及单元格和其他元素。一些子元素具有背景颜色。我希望以递归方式遍历所有子项并将其背景颜色重置为白色,前提是它们当前的背景颜色为#ede7dd。

我如何在jQuery或JavaScript中执行此操作?任何人的实施都会比另一个更快吗?

我有点被困在这里:

$('.HDRBody *').each(function(){
    // code here
});

以下是DOM的屏幕截图:http://i39.tinypic.com/2pql4i8.jpg

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

这应该有效:

$("div[class^=HDR]")

因为它将选择具有以 HDR 开头的类的每个div。请注意,它将匹配第一个类,而不是任何类名。

<div class="HDRTest">...</div>
<div class="t1 HDRTest2">...</div>

这将只有 第一个div,因为第二个div的类名不以 HDR 开头。

jQuery Attribute starts with selector

编辑:如果您想选择table.HDRBody使用$("table.HDRBody div[class^=HDR]")

答案 1 :(得分:1)

试试 DEMO

$('.HDRBody *').filter(function() {
var match = '#ede7dd', hexMatch = 'rgb(237, 231, 221)'; // match background-color
return ( $(this).css('background-color') == match 
         || $(this).css('background-color') == hexMatch);
}).css('background-color', 'white');