<div>
<a>
Text1
<img alt="" stc="" />
</a>
<a>
Text2
</a>
</div>
我想选择所有text=text2
的锚元素。我正在寻找这样的东西:
$('a[text=Text2]')
修改:为什么这不起作用?出于某种原因,它需要采用以下格式:
$('div').find('a').find(':contains("Text2")')
答案 0 :(得分:38)
你问为什么这不起作用:
$('div').find('a').find(':contains("Text2")')
原因是,.find()
会搜索子元素,您需要.filter()
(因为您已经选择了a
- 或者您将:contains
添加到了查找:
$('div').find('a').filter(':contains("Text2")');
$('div').find('a:contains("Text2")');
答案 1 :(得分:6)
您正在寻找contains:
$("a:contains('text2')")
答案 2 :(得分:2)
使用:contains()
过滤器。
答案 3 :(得分:2)
作为补充说明,不是扫描链接中的确切文本,而是扫描属性可能更好,例如
<div class="farm-market-items">
<a class="market-item" data-item-type="seed" data-item-id="817">
Carrot Seed
<img alt="" src="" class="item-thumb" />
</a>
<a class="market-item" data-item-type="seed" data-item-id="25">
Spinach Seed
</a>
<a class="market-item" data-item-type="tree" data-item-id="981">
Pear Tree
</a>
</div>
现在您可以(准确地)扫描:
all_seeds = $('a[data-item-type="seed"]');
(我是数据*属性的忠实粉丝。)