jQuery trouve l'élément par la valeur de l'attribut de données

J'ai quelques éléments comme ci-dessous :

<a class="slide-link" href="#" data-slide="0">1</a>
<a class="slide-link" href="#" data-slide="1">2</a>
<a class="slide-link" href="#" data-slide="2">3</a>

Comment puis-je ajouter une classe à l'élément dont la valeur de l'attribut data-slide est de 0 (zéro) ?

J'ai essayé de nombreuses solutions différentes mais rien ne fonctionne. Un exemple :

$('.slide-link').find('[data-slide="0"]').addClass('active');

Une idée ?

Solution

Utilisez [Attribut Equals Selector] (https://api.jquery.com/attribute-equals-selector/)

$('.slide-link[data-slide="0"]').addClass('active');

[Démonstration de l'astuce](http://jsfiddle.net/cse_tushar/NT7jf/)

.find()

cela fonctionne en bas de l'arbre

Obtenez les descendants de chaque élément dans l'ensemble actuel d'éléments correspondants, filtré par un sélecteur, un objet jQuery ou un élément.

Commentaires (8)

Vous pouvez également utiliser [.filter()][1].

$('.slide-link').filter('[data-slide="0"]').addClass('active');

[1] : http://api.jquery.com/filter/

Commentaires (0)

vous pouvez également utiliser la méthode andSelf() pour obtenir le DOM contenu dans le wrapper, puis find() peut être contourné selon votre idée

$(function() {
  $('.slide-link').andSelf().find('[data-slide="0"]').addClass('active');
})
.active {
  background: green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<a class="slide-link" href="#" data-slide="0">1</a>
<a class="slide-link" href="#" data-slide="1">2</a>
<a class="slide-link" href="#" data-slide="2">3</a>
Commentaires (0)