添加表标题行将禁用jQuery选择器

添加表标题行将禁用jQuery选择器,jquery,html,html-table,jquery-selectors,Jquery,Html,Html Table,Jquery Selectors,使用jQuery,我可以在比较同一行中不相同的两个单元格时突出显示一个单元格 $(".g-rebuild-thumb-list tr").each(function () { if ($(this).find("td")[2].innerHTML != $(this).find("td")[3].innerHTML) { $(this).find("td")[0].bgColor = "red"; } }); 下面是一个JS提琴,它可以按预期工作: 但是,如果

使用jQuery,我可以在比较同一行中不相同的两个单元格时突出显示一个单元格

$(".g-rebuild-thumb-list tr").each(function () {
    if ($(this).find("td")[2].innerHTML != $(this).find("td")[3].innerHTML) {
        $(this).find("td")[0].bgColor = "red";
    }
});
下面是一个JS提琴,它可以按预期工作:

但是,如果我向表中添加标题,它将不起作用

<tr>
<th>head</th>
<th>head2</th>
<th>head3</th>
<th>head4</th>

头
标题2
总目3
总目4

添加标题行的相同代码的完整JS FIDLE:


有人能提出一个解决方案或解释吗?

因为您仍然基于
tr
的选择器,您也为标题添加了该选择器。我更新了JSFIDLE,并添加了
tbody
thead
,但您不必使用它们。您只需将一个类添加到要应用选择器的
tr
,然后在jQuery中将
td
替换为类名。这里是小提琴:

,因为您仍然基于
tr
的选择器,您还为标题添加了选择器。我更新了JSFIDLE,并添加了
tbody
thead
,但您不必使用它们。您只需将一个类添加到要应用选择器的
tr
,然后在jQuery中将
td
替换为类名。这是提琴:

阿尔伯特,谢谢你的提琴和解释,很有魅力。阿尔伯特,谢谢你的提琴和解释,很有魅力。