25 votes

Obtenir tous les liens avec une valeur HTML interne spécifique dans jQuery

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

Editer : Pourquoi cela ne fonctionne-t-il pas ? Pour une raison ou une autre, il doit être dans ce format :

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

41voto

gnarf Points 49213

Vous demandez pourquoi cela ne fonctionne pas :

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

La raison en est la suivante, .find() recherchera les éléments des enfants, vous voulez que .filter() (parce que vous avez déjà sélectionné le a - ou vous ajoutez le :contains à la recherche d'une solution :

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

6voto

Kevin Gorski Points 2860

Vous recherchez contient :

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

2voto

Chetan Sastry Points 14742

Utiliser le :contains() filtre.

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

2voto

Amy Points 520

Par ailleurs, plutôt que de rechercher le texte exact à l'intérieur d'un lien, il serait 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>

Désormais, vous pouvez scanner (avec précision) :

all_seeds = $('a[data-item-type="seed"]');

(Je suis un grand fan des attributs data-*).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X