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

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

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

$('a[text=Text2]')

Править: Почему это не работает? Для немного некоторая причина это должно быть в этом формате:

$('div').find('a').find(':contains("Text2")')
23
задан alex 2 March 2017 в 19:08
поделиться

4 ответа

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

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

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

$('div').find('a').filter(':contains("Text2")');
$('div').find('a:contains("Text2")');
39
ответ дан 29 November 2019 в 01:38
поделиться

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

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

2
ответ дан 29 November 2019 в 01:38
поделиться

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

$("a:contains('text2')")
6
ответ дан 29 November 2019 в 01:38
поделиться

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

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

.
2
ответ дан 29 November 2019 в 01:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: