Jquery get élément contenant un élément enfant avec une valeur html spécifique
Je voudrais utiliser Jquery pour ajouter une classe "li" élément qui contient un "span" élément html/val égal à zéro.
Par Exemple si mon code ressemble à ceci:
<ul>
<li><span>Item 1</span><span class="num">30</span></li>
<li><span>Item 2</span><span class="num">0</span></li>
<li><span>Item 3</span><span class="num">20</span></li>
</ul>
Je veux modifier suivantes:
<ul>
<li><span>Item 1</span><span class="num">30</span></li>
<li class="disabled"><span>Item 2</span><span class="num">0</span></li>
<li><span>Item 3</span><span class="num">20</span></li>
</ul>
Dans le passé, j'ai utilisé ce code pour vérifier les éléments de valeurs d'attribut, mais jamais leur html/val-de faire quelque chose à cet effet...
$('li').has('span.num').addClass('disabled');
Mais dans ce cas, le résultat serait de:
<ul>
<li class="disabled"><span>Item 1</span><span class="num">30</span></li>
<li class="disabled"><span>Item 2</span><span class="num">0</span></li>
<li class="disabled"><span>Item 3</span><span class="num">20</span></li>
</ul>
Qui n'est évidemment pas d'aller travailler... Merci
source d'informationauteur Jeremy A. West
Vous devez vous connecter pour publier un commentaire.
Cela devrait faire ce que vous voulez.
JS Fiddle
J'aurais suggéré ce qui suit:
Mais ça ne fonctionne pas, il vérifie si la valeur existe à l'intérieur de l'html sont pas une correspondance exacte. Dans ce cas, chacun de la plage.num éléments ont un 0, de sorte que chaque li serait d'obtenir la classe sélectionnée. Il ne semble pas être un :equals() de contrepartie à l' :contient du (de la) sélecteur.
De l'essayer.
Démo
Essayer:
JS Fiddle démo.
Vous pouvez faire correspondre la
<span>
élément avec filtre()puis obtenir son parent<div>
avec parent():Voici un moyen rapide pour:
Avec un jsFiddle exemple.