jQuery .cliquez sur(): retourne l'attribut de balise div avec la même classe
J'ai un problème avec cliquez sur l'événement; voici le code:
jQuery:
$(document).ready(function() {
$('.myClass').click(function() {
alert($(.myClass).attr("iditem"));
});
});
HTML:
<div class="myClass" iditem="1">
1
</div>
<div class="myClass" iditem="2">
2
</div>
Deux DIV
avec la même classe, mais des valeurs différentes pour le même attribut, lorsque je clique sur un DIV
, alerte impression de toujours "1" (il semble ignorer la déclaration de la deuxième DIV
). Pourquoi .attr()
ne prend pas la bonne valeur pour la deuxième DIV
?
manque les guillemets, sinon utiliser un "ceci"
OriginalL'auteur user1237757 | 2012-02-28
Vous devez vous connecter pour publier un commentaire.
En supposant que vous avez
$('.myClass').attr("iditem")
, ce sera toujours le retour de l'attribut de la première élément dans l'ensemble, comme décrit dans la la documentation de [docs] þ:Donc, au lieu de sélectionner tous éléments avec la classe
myClass
(c'est ce que$('.myClass')
n', n'importe où/quand il est appelé), vous souhaitez obtenir une référence à l'élément cliqué. Il suffit de faire:this
toujours fait référence à l'élément le gestionnaire d'événement était lié.Je suggère l'utilisation de HTML5
-*
attributs au lieu d'attributs personnalisés, d'avoir au moins HTML5 valide:Vous pouvez ensuite utiliser
.de données()
[docs] pour récupérer la valeur.þ: Vous devriez vraiment lire la documentation de jQuery. Il fournit de nombreux exemples et une description détaillée du fonctionnement de chaque méthode. Assurez-vous aussi de comprendre comment sélecteurs [docs] travail.
OriginalL'auteur Felix Kling
Je suppose que vous voulez afficher la itemid de l'élément que vous cliquez sur? Ensuite, cela fonctionne:
OriginalL'auteur Willem Mulder
alert($(".myClass").attr("iditem"));
OriginalL'auteur Beetroot-Beetroot
$(".myClass")
renvoie tous les éléments avec la classemyClass
. Je pense que vous voulez quelque chose comme ceci à la place:OriginalL'auteur Klaus Byskov Pedersen