Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 遍历表的所有子元素并重置背景色_Javascript_Jquery_Dom_Iteration - Fatal编程技术网

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

Javascript 遍历表的所有子元素并重置背景色,javascript,jquery,dom,iteration,Javascript,Jquery,Dom,Iteration,我有一个表格,里面有许多其他表格、行、单元格和其他元素。某些子元素具有背景色。我希望递归遍历所有子对象,并将它们的背景色重置为白色,前提是它们的当前背景色为#ede7dd 如何在jQuery或JavaScript中实现这一点?是否有人比其他人更快 我被困在这里了: $('.HDRBody *').each(function(){ // code here }); 以下是DOM的屏幕截图: 谢谢你的帮助 这应该有效: $("div[class^=HDR]") 因为它将选择每个具有以HD

我有一个表格,里面有许多其他表格、行、单元格和其他元素。某些子元素具有背景色。我希望递归遍历所有子对象,并将它们的背景色重置为白色,前提是它们的当前背景色为#ede7dd

如何在jQuery或JavaScript中实现这一点?是否有人比其他人更快

我被困在这里了:

$('.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()返回的背景色,我保证它不是十六进制的,除非你的浏览器是古老的。是的,但你可以这样做或。我已经用一个演示修改了我的答案