J'ai lu cette question SO:
jQuery - sélectionnez les enfants qui ont des styles spécifiques
mais mon problème est un peu différent.
Je veux sélectionner les PARENTS que leurs enfants de 1er niveau (pas tous les descendants) ont certains styles. Quelque chose comme ça :
<ul id="BIG">
<li>Home
<ul id="SMALL">
<li> 123 </li>
<li name="foo"> 123 </li>
<li> 123 </li>
</ul>
</li>
<li>Articles</li>
<li>Petitions</li>
<li>Contact</li>
</ul>
Et je veux attraper l'UL avec id = "SMALL". Mais mon sélecteur attrape les 2 balises UL:
$("ul:has(li[name="foo"])")
Toute suggestion ?
Réponses:
2 pour la réponse № 1Utilisez le enfant sélecteur >
, comme ça:
$("ul > li[name="foo"]").parent()
Voir travail démo
2 pour la réponse № 2
Essaye ça:
$("li[name="foo"]").parent();
Veuillez noter que la sélection des éléments DOM en fonction de leurs attributs est lente. Essayez de limiter la portée de la recherche si vous le pouvez. Par exemple:
$("#BIG").find("li[name="foo"]").parent();