2010-10-27 8 views
0

Voici mon code.jquery ID généré avec la même classe

 
//generate a id 
$(".slide_img_a").each(function(){ 
$(this).attr("id","img"+(Math.round(Math.random()*100))) 
}); 

// get id 
var img_id = $(".slide_img_a").attr("id"); 

// alert the id 
$(".slide_img_a img").hover(function(){ 
alert(img_id); 
}); 

Le problème de c'est que j'ai 5 images avec la même classe et id aléatoire. Lorsque je survole l'image, le résultat est qu'il peut seulement alerter l'identifiant de la première image. Je voulais faire est quand je les passe la souris, ils alertent Thier propre

de id
+0

Vous ne devriez pas avoir double 's et votre id' La méthode créera parfois des «id» en double. –

Répondre

1

Vous pouvez utiliser this dans le gestionnaire d'événements et de trouver ce que vous voulez de cette façon, comme ceci:

$(".slide_img_a img").hover(function(){ 
    alert($(this).closest(".slide_img_a").attr("id")); 
}); 

Cela prend l'image a plané au moment du survol puis utilise .closest() pour aller au conteneur .slide_img_a, et que est l'élément dont nous tirons l'ID.


Pour les versions antérieures à 1.3 de jQuery (puisque nous savons que le <a> n'a pas la classe), vous pouvez le faire:

$(".slide_img_a img").hover(function(){ 
    alert($(this).parents(".slide_img_a:first").attr("id")); 
}); 
+0

$ (". Slide_img_a") .la plus proche n'est pas une fonction – Jorge

+0

@Jordan - vous pouvez utiliser .parents ('. Slide_img_a: first') pour les anciennes versions de jquery. –

Questions connexes