0

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

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

<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')

?

4

2 回答 2

6

利用contains

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

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

于 2013-07-31T11:48:51.233 回答
0

还有一个更复杂的答案,涉及.contents()方法、nodeTypes 和 innerHTML。我更喜欢克劳迪奥的!

于 2013-07-31T11:51:31.450 回答