Javascript 如果第一个td包含一些单词,我如何向第二个td添加类?

Javascript 如果第一个td包含一些单词,我如何向第二个td添加类?,javascript,jquery,Javascript,Jquery,如果第一个td包含单词零,如何将类添加到第二个td $('td:nth-child(1):contains("ZERO")').closest('td:nth-child(2)').addClass('intro').removeClass('part-pakiet'); 使用(+): 例如: $(“td:n子(1):包含(零)+td”).addClass('intro').removeClass('part-pakiet') 正文{ 字体系列:无衬线; } 桌子{ 边界塌陷:塌陷; }

如果第一个td包含单词零,如何将类添加到第二个td

$('td:nth-child(1):contains("ZERO")').closest('td:nth-child(2)').addClass('intro').removeClass('part-pakiet');  
使用(
+
):

例如:

$(“td:n子(1):包含(零)+td”).addClass('intro').removeClass('part-pakiet')
正文{
字体系列:无衬线;
}
桌子{
边界塌陷:塌陷;
}
td,td{
边框:1px实心#ddd;
}
.介绍{
颜色:绿色;
字体大小:粗体;
}

第一个单元格-不匹配
第二单元
带零的第三个单元格
…向我们自己证明这不匹配
第一单元-零
第二单元
带零的第三个单元格
…向我们自己证明这不匹配
第一个单元格-不匹配
第二单元
带零的第三个单元格
…向我们自己证明这不匹配
第一单元-零
第二单元
带零的第三个单元格
…向我们自己证明这不匹配

在您的示例中,您错误地使用了
最近的
。这里的“最近”是指与选择器匹配的最近的祖先元素(如果与选择器匹配,则指当前元素)。因此,在这种情况下,您必须获得最近的
tr
,然后是第二个
td
。为了便于记录,这里有一个使用
最近的
的工作代码

$('td:nth-child(1):contains("ZERO")').closest('tr').find('td:nth-child(2)').addClass('intro').removeClass('part-pakiet'); 
但是,在这种情况下,您不需要使用
最近的
,因为使用
next
选择器有一种更简单的方法

$('td:nth-child(1):contains("ZERO")').next().addClass('intro').removeClass('part-pakiet'); 

如果文本肯定等于该单词,则采用更字面的方法。其他明智的做法是使用:contains伪:

var tableElement=$('.table td:first child'),
wordToCheck='零';
if(tableElement.text()==wordToCheck){
tableElement.next().addClass('intro').removeClass('part-pakiet');
}

您可以使用
filter()
函数进行以下操作:

$('td').filter(function(){
    return ~$(this).prev('td').text().indexOf('ZERO'); // check if prev td contains 'ZERO' text
}).addClass('intro').removeClass('part-pakiet');

你有没有
.next()
。这很好,但对我个人来说,使用
next
更重要readable@ZoltánTamási:我想这取决于你的CSS水平。这是非常可读的人与坚实的CSS选择器的知识<当然,code>next
也是一个非常好的解决方案。我对CSS很在行,但是,我总是记不住相邻兄弟操作符的方向:)@ZoltánTamási::-)它与所有其他组合符(例如后代组合符,例如
div span
)的方向相同,如果有帮助的话。我有一个(可笑的小)诡辩;“[最近的]这里指的是最近的父母…”;总是指最近的祖先元素(或当前元素,如果它与选择器匹配的话),而不是其他任何东西。@DavidThomas谢谢,事实上我一直在寻找一个我没有想到的单词祖先(我的英语不是完美的)。我不知道你的母语,佐尔坦,但我怀疑你说得远,我的英语比你的母语好多了。困扰我的不是祖先/父母之间的差异,而是在某些情况下,
closest()
可能不看父母/祖先。正如我所说:“可笑的小诡辩”:)为了完整起见,这是匈牙利语:)
$('td').filter(function(){
    return ~$(this).prev('td').text().indexOf('ZERO'); // check if prev td contains 'ZERO' text
}).addClass('intro').removeClass('part-pakiet');