<div>
<a>
Text1
<img alt="" stc="" />
</a>
<a>
Text2
</a>
</div>
Je souhaite sélectionner tous les éléments d'ancrage qui ont text=text2
. Je cherche quelque chose comme ça:
$('a[text=Text2]')
Edit: Pourquoi cela ne fonctionne pas? Pour une raison quelconque, il doit être dans ce format:
$('div').find('a').find(':contains("Text2")')
Vous demandez pourquoi cela ne fonctionne pas:
$('div').find('a').find(':contains("Text2")')
La raison en est, .find()
recherchera les éléments enfants, vous voulez .filter()
(car vous avez déjà sélectionné le a
- ou vous ajoutez le :contains
à la recherche a:
$('div').find('a').filter(':contains("Text2")');
$('div').find('a:contains("Text2")');
Vous recherchez contient :
$("a:contains('text2')")
Utilisez le filtre :contains()
.
Comme note supplémentaire, plutôt que de rechercher le texte exact à l'intérieur d'un lien, il pourrait être préférable de rechercher des attributs, par exemple.
<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>
Vous pouvez maintenant (précisément) rechercher:
all_seeds = $('a[data-item-type="seed"]');
(Je suis un grand fan des attributs data- *.)