在jQuery中获取具有特定内部HTML值的所有链接

时间:2010-02-11 02:25:01

标签: jquery jquery-selectors

<div>
    <a>
       Text1
       <img alt="" stc="" />
    </a>
    <a>
       Text2
    </a>
 </div>

我想选择所有text=text2的锚元素。我正在寻找这样的东西:

$('a[text=Text2]')

修改:为什么这不起作用?出于某种原因,它需要采用以下格式:

$('div').find('a').find(':contains("Text2")')

4 个答案:

答案 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()过滤器。

http://api.jquery.com/contains-selector/

答案 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"]');

(我是数据*属性的忠实粉丝。)