2010-10-27 80 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