Получение всех ссылок с определенным внутренним значением HTML в jQuery - PullRequest
22 голосов
/ 11 февраля 2010
<div>
    <a>
       Text1
       <img alt="" stc="" />
    </a>
    <a>
       Text2
    </a>
 </div>

Я хочу выбрать все элементы привязки, которые имеют text=text2. Я ищу что-то вроде этого:

$('a[text=Text2]')
<Ч />

Редактировать: Почему это не работает? По какой-то причине он должен быть в следующем формате:

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

Ответы [ 4 ]

38 голосов
/ 11 февраля 2010

Вы спрашиваете, почему это не работает:

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

Причина в том, что .find() будет искать дочерние элементы, вы хотите .filter() (потому что вы уже выбрали a - или вы добавляете :contains к находка:

$('div').find('a').filter(':contains("Text2")');
$('div').find('a:contains("Text2")');
6 голосов
/ 11 февраля 2010

Вы ищете содержит :

$("a:contains('text2')")
2 голосов
/ 11 февраля 2010

В качестве дополнительной заметки, вместо сканирования точного текста внутри ссылки, может быть лучше сканировать атрибуты, например,

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

(я большой поклонник данных- * атрибутов.)

2 голосов
/ 11 февраля 2010

Используйте фильтр :contains().

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...