Comment sélectionner toutes les balises d'ancrage avec un texte spécifique
Donné de multiples ancrage tags:
<a class="myclass" href="...">My Text</a>
Comment puis-je sélectionner les points d'ancrage correspondant à la classe et avec certains de texte spécifique. par exemple, Sélectionnez tous les points de contrôle avec la classe: "myclass" et le texte:'Mon Texte'
Vous devez vous connecter pour publier un commentaire.
$('a.myclass[href]:contains("My Text")')
id
pour spécifier le point d'ancrage soit?Vous pourriez créer un sélecteur similaires à
:contains
pour les correspondances exactes:Si vous seulement pris la peine si l'ancre texte contient une chaîne particulière, rendez-vous avec @Dave Morton solution. Si, toutefois, vous souhaitez exactement correspondre à une chaîne particulière, je dirais quelque chose comme ceci:
Légèrement version améliorée (avec un deuxième garniture paramètre):
Tout d'abord, sélectionnez toutes les balises contenant 'MON texte'. Ensuite, pour chaque correspondance exacte, si elle correspond à la condition de faire ce que vous voulez faire.
Si vous ne connaissez pas la classe de l'objet désiré et vous voulez juste pour aller après le texte du lien, il est possible d'utiliser
Même si vous ne savez pas quel élément (par exemple, a, p, lien, ...), vous pouvez utiliser
(tout en laissant la partie avant de
:
vide).Je dois ajouter ici qu'il apporte tous les éléments début de
<html>
-Tag en bas de l'élément souhaité. Une solution que je pourrais donner est l'ajout de.last()
à elle, mais celui-ci ne fonctionne que si il n'y a qu'un seul élément à trouver. Peut-être sbdy. sait une meilleure solution ici.En fait, ce devrait être un plus pour la accepté de répondre, en particulier à @Amalgovinus question.
Je pense que cela devrait fonctionner pour la correspondance exacte chose..
html()
s'applique uniquement au premier élément dans l'ensemble des éléments qui correspondent (api.jquery.com/html). Vous avez besoin de flux de contrôle ou d'itération pour chacune des ancres, commeeach()
.