Подтвердить что ты не робот

Получение всех ссылок с определенным внутренним значением HTML в jQuery

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

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

$('a[text=Text2]')

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

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

Ответ 1

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

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

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

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

Ответ 2

Вы ищете contains:

$("a:contains('text2')")

Ответ 4

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

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

(Я большой поклонник атрибутов data- *.)