2010-10-27 75 views
0

这是我的代码。jquery与同一类生成的id

 
//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); 
}); 

问题是我有5个图像具有相同的类和随机ID。当我将图片悬停时,结果是他只能提醒第一张图片的ID。我想要做的是,当我将鼠标悬停他们,他们会提醒thier自己的ID的

+0

你不应该有重复的'id' S和您的方法有时会创建重复的id。 – 2010-10-27 18:54:37

回答

1

您可以使用this事件处理程序内,找到你想要的那个样子,就像这样:

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

这需要像你在盘旋时徘徊,然后使用.closest()上升到.slide_img_a容器,而是我们从中拉出ID的元素。


对于预1.3版本的jQuery的(因为我们知道<a>不具备类),你可以这样做:

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

$(“。slide_img_a”)。closest最接近的不是函数 – Jorge 2010-10-27 18:44:37

+0

@Jordan - 您可以使用.parents('。slide_img_a:first')的旧版jquery的instread。 – 2010-10-27 20:33:38