Javascript 遍历表的所有子元素并重置背景色
我有一个表格,里面有许多其他表格、行、单元格和其他元素。某些子元素具有背景色。我希望递归遍历所有子对象,并将它们的背景色重置为白色,前提是它们的当前背景色为#ede7dd 如何在jQuery或JavaScript中实现这一点?是否有人比其他人更快 我被困在这里了:Javascript 遍历表的所有子元素并重置背景色,javascript,jquery,dom,iteration,Javascript,Jquery,Dom,Iteration,我有一个表格,里面有许多其他表格、行、单元格和其他元素。某些子元素具有背景色。我希望递归遍历所有子对象,并将它们的背景色重置为白色,前提是它们的当前背景色为#ede7dd 如何在jQuery或JavaScript中实现这一点?是否有人比其他人更快 我被困在这里了: $('.HDRBody *').each(function(){ // code here }); 以下是DOM的屏幕截图: 谢谢你的帮助 这应该有效: $("div[class^=HDR]") 因为它将选择每个具有以HD
$('.HDRBody *').each(function(){
// code here
});
以下是DOM的屏幕截图:
谢谢你的帮助 这应该有效:
$("div[class^=HDR]")
因为它将选择每个具有以HDR开头的类的div
。请注意,它将匹配第一个类,而不是任何类名
<div class="HDRTest">...</div>
<div class="t1 HDRTest2">...</div>
。。。
...
这将只获得第一个div,因为在第二个div中,它的类名不以HDR开头
编辑:如果要选择table.HDRBody
请使用$(“table.HDRBody div[class^=HDR]”
试试这个
$('.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');
你没有。获取元素颜色可能会返回十六进制、rgb或rgba,具体取决于浏览器,因此这似乎需要大量工作,您可能需要找到其他方法来完成。我们需要更多信息来帮助您找到好的解决方案。当前如何设置背景色,例如。内联风格?基于类的CSS?基于位置的CSS?一些示例HTML也会很有帮助。请用演示检查我下面的答案。这应该适合你…现在在你的浏览器中尝试一下,并添加一个控制台日志来检查css()返回的背景色,我保证它不是十六进制的,除非你的浏览器是古老的。是的,但你可以这样做或。我已经用一个演示修改了我的答案