我有一张这样的桌子。
<table>
<tr>
<td>one</td>
<td>two</td>
<td>one two</td>
</tr>
<tr>
<td>one</td>
<td>two</td>
<td>one two</td>
</tr>
<tr>
<td>one</td>
<td>two</td>
<td>one two</td>
</tr>
</table>
和jquery代码,以突出显示td
,如果其值为one
$("table > tbody > tr > td:contains('one')").css("background", "#6a5acd");
如果值为one two
,代码也会使td变为高位。我想只突出显示one
答案 0 :(得分:4)
:contains不适合这个,因为它只检查元素中是否存在给定字符串,使用手册filter来执行此操作
$("table > tbody > tr > td").filter(function(){
return $.trim($(this).text()) == 'one'
}).css("background", "#6a5acd");
请参阅fiddle
上的演示答案 1 :(得分:0)
尝试这个
$("tr td:contains('one')").each(function(){
$(this).css("background","#6a5acd");
});
请参阅fiddle
上的演示答案 2 :(得分:0)
contains
函数真的不适合这种用法。我建议改为filter
。
以下是您想要做的语法。
$("table > tbody > tr > td").filter(function() {
return $(this).text() === "one"
}).css("background", "#6a5acd");
这是一个jFiddle: http://jsfiddle.net/xDP9d/