按内容文本选择元素

时间:2013-07-31 11:47:30

标签: jquery jquery-selectors

是否有一种简单的方法(我只选择选择器)来选择具有某些特定“内容文本”的元素?

例如,我们可以有以下情况

<div>
 <div class="a">text 1</div>
 <div class="a">text 2</div>
 <div class="a">text 3</div>
</div>

我们可以做类似

的事情
$('div div.a').each(function() {
    if( ($this).text() == "text 1") {
       // do something
    }
});

但有没有办法可以做到:

 $('div div.a[text="text 1"])

 $('div div.a').someEMBEDEDfunction('text 1')

2 个答案:

答案 0 :(得分:6)

使用contains

$('div div.a:contains("text 1"))

需要考虑的是此选择器区分大小写。如果您需要不区分大小写的版本,则需要实现自己的选择器或覆盖现有选择器。

答案 1 :(得分:0)

还有一个更复杂的答案涉及.contents()方法,nodeTypes和innerHTML。我喜欢Claudio的好多了!