2010-01-08 7 views
2

Je dois être en mesure de sélectionner un élément qui a un certain contenu (innerHTML).Comment sélectionner un élément en fonction de son contenu?

par exemple. J'ai quelques ancres chacune avec un nombre comme texte. Comment puis-je sélectionner l'ancre avec '1' comme texte?

J'ai essayé

$('a[innerHTML="1"]') 

cela semble fonctionner dans IE, mais pas ff ou chrome!

Répondre

0

Merci pour les réponses. Je suis venu avec une solution:

$('.pages a').filter(function() { return $(this).text() == 1; }) 

Depuis les ancres, je suis à la recherche sont tous dans une div commune que je restreindre par cela et puis exécutez une fonction de filtre client la trouver l'élément exact.

+0

Bien joué, content que vous ayez trouvé une solution plus simple. – ryanulit

1

Essayez $ ("a: contient ('1')")

EDIT => ce alertera tout le texte de l'ancre avec 1 ou null si rien ne se trouve.

alert(FindLink($("a:contains('1')"), "1")); 

function FindLink(element, textToFind) { 
    var result = null; 
    element.each(function() { 
     if ($(this).text() === textToFind) 
     { 
      result = $(this).text(); 
      // you can change any attributes or css using $(this).css, etc 
      // once the if statement is satisfied 
     } 
    }); 
    return result; 
} 
+0

Lien vers doc est également dans une autre réponse, mais ici: http://docs.jquery.com/Selectors/contains#text – cjstehno

+0

Merci, mais j'ai besoin du texte pour être exact ne contient pas seulement. par exemple. si j'ai et ancre avec 1 et 10 $ ("a: contains ('1')") retournera les deux. Cela peut-il être fait avec des contenants? – CeejeeB

+0

Je ne pense pas que vous allez être en mesure de le faire avec des contenants. Vous devrez peut-être faire une fonction où vous passez dans la valeur que vous recherchez et ensuite faire une boucle sur les résultats et trouver explicitement le lien qui a la valeur. Je vais modifier ma réponse pour le faire. – ryanulit

Questions connexes