如何选择其中包含特定文本的标签而不是其他内容?例如,如果我有以下内容:
<table>
<tr>
<td>Assets</td><td>Asset</td>
</tr>
<tr>
<td>Play</td><td>Players</td><td>Plays</td>
</tr>
</table>
我有什么方法可以选择<td>Asset</td>
而不是别的。我尝试使用contains
即$("table tr td:contains(Play)")
,但它返回第二个td
中的所有tr
(应该如此)。而我只想要<td>Play</td>
。
有没有办法实现这一点,就像有一种方法可以根据属性选择元素。有没有办法根据里面的文字选择元素?
答案 0 :(得分:4)
怎么样:
var lookup = 'Asset';
$('td:contains('+ lookup +')').filter(function() {
return $(this).text() === lookup;
});
<强>演示强>
答案 1 :(得分:0)
尝试这样的事情:
$("table tr td").filter(function() {
return $(this).text() === "Play";
})
答案 2 :(得分:0)
如果它是一个输入字段,你可以指定类似的东西,但用$('input [name~ =“Plays”])更精确一些,这样它就会过滤掉所有其他字,保持值被隔离。 / p>
除此之外,我知道用表执行此操作的唯一方法是使用您所拥有的内容,还会抛出条件语句来检查其中的文本。
以下是我完成此操作的版本:
http://jsfiddle.net/combizs/LD75y/3/
var play = $('table tr td:contains(Play)');
for (var i = 0, l = play.length; i < l; i++) {
if ($(play[i]).text() === "Play") {
// your script to modify below
$(play[i]).css({"color" : "red"});
}
}