jquery - 过滤vs不 - 失去理智x.x

时间:2014-02-19 15:01:32

标签: jquery

我有一个包含一些列的简单表,其中一列有一个类.day

现在我想用类.day

标记该列中不包含单词“sob”的行
$('#tableid tbody tr td').not('#tableid tbody tr td.day:contains("sob")').parent()
.css("background-color", "red");

不知何故,所有内容都标记为红色(因为其中没有包含“sob”字样)......

虽然使用完全相同的东西,但使用“过滤器”:

$('#tableid tbody tr td').filter('#tableid tbody tr td.day:contains("sob")').parent()
.css("background-color", "red");

它在该特定列中正确标记了带有呜咽的行

1 个答案:

答案 0 :(得分:1)

因为假设表有多于1列,每行中至少有一列没有类日,并且不包含sob

$('#tableid tbody tr td')返回tbody中的每个td,而不仅仅是日期类的td,因此您可以将其更改为

$('#tableid tbody tr td.day').not(':contains("sob")').parent().css("background-color", "red");

这将仅针对具有课程日

的那些td元素