7
votes

jQuery: a (.Quelque chose: contient ()) non pris en charge?

Compte tenu du code HTML ci-dessous, j'essaie d'utiliser jQuery pour correspondre à tous les éléments de la liste forts> qui ont une portée avec la classe "foo" et que la portée doit contenir le texte "pertinent".

ul li:has(span:contains('relevant"))


2 commentaires

+1 pour utiliser JSBIN dans la question, nous épargnant tous les temps de travail.


@Kobi - +1 pour vous admettre au travail :)


5 Réponses :


6
votes

Vérifiez cela:

$(document).ready(function(){
    $('span.foo:contains(relevant)').parents('li').each(function() {
       alert($(this).text());
    });
});


1 commentaires

Qui sélectionne la SPAN.FOO, pas l'élément de liste.



1
votes

Je sais que cela peut ne pas être aussi élégant, mais au moins cela fonctionnera: xxx

Je n'ai pas pu faire fonctionner votre version ...


0 commentaires

2
votes

J'ai essayé d'inverser l'ordre des sélecteurs:

$("ul li:has(:contains('relevant').foo)").css('background-color', 'red');


0 commentaires

4
votes

battu à elle ... mais si vous voulez un sélecteur pur, vous étiez Darn Fermer

ul li:has(span[class='foo']:contains('relevant'))


0 commentaires

0
votes

Je ne sais pas pourquoi vous avez ce problème avec le sélecteur, confirmé que cela fonctionne bien:

$("ul li").filter(":has(span.foo:contains('relevant'))").css('background-color', 'green');


0 commentaires