使用jQuery根据元素内部的文本选择元素

3
如何选择一个具有特定文本但没有其他内容的标签?例如,如果我有以下内容:
<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)"),但它返回了第二个 tr 中所有的 td 元素(这是应该的),而我只想要 <td>Play</td>
是否有一种类似于根据元素属性选择元素的方式,根据元素内部的文本来选择元素的方法呢?
3个回答

4
如何呢:
var lookup = 'Asset';
$('td:contains('+ lookup +')').filter(function() {
    return $(this).text() === lookup;
});

Demo

Try before buy


0
尝试像这样做:

尝试像这样做:

$("table tr td").filter(function() {
    return $(this).text() === "Play";
})

0
如果它是一个输入字段,您可以使用$('input[name~="Plays"])'指定类似但更精确的内容,这样它就会过滤掉其他单词,只留下值。
除此之外,我所知道的唯一在表格中实现此功能的方法就是使用您已经拥有的方法,并添加一个条件语句来检查其中的文本。
以下是我完成此操作的版本:

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"});
  }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接