/ / jquery sélectionner un parent qui a des enfants avec certains attributs - jquery, styles, selector, children

jquery sélectionne le parent qui a des enfants avec certains attributs - jquery, styles, selector, children

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 № 1

Utilisez 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();

Démo ici.

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();