2011-11-04 70 views
1

我有一個簡單的例子:jquery如何獲得標題attr?

<a id="my_videos" href="#" title="123"><img src="http://placehold.it/350x150"></a> 
<a id="my_videos" href="#" title="223"><img src="http://placehold.it/350x150"></a> 
<a id="my_videos" href="#" title="323"><img src="http://placehold.it/350x150"></a> 

$('#my_videos').live('click', function() { 
    var ide = $('#my_videos').attr('title'); 
    alert (ide); 
}); 

什麼情況是,我每一次點擊的值相同彈出123

我到底做錯了什麼?

感謝

這裏是一個jsfiddle

回答

6

重命名id="my_videos"class="my_videos"。 ID應該是唯一的。然後,在事件偵聽器中使用this來引用剛剛單擊的元素。

<a class="my_videos" href="#" title="123"><img src="http://placehold.it/350x150"></a> 
<a class="my_videos" href="#" title="223"><img src="http://placehold.it/350x150"></a> 
<a class="my_videos" href="#" title="323"><img src="http://placehold.it/350x150"></a> 

$('.my_videos').live('click', function() { 
    var ide = this.title; 
    alert (ide); 
}); 

對於這種情況,Vanilla JavaScript更加清晰。如果你想使用jQuery拿到冠軍,用途:

var ide = $(this).attr('title'); 
+0

成功,得益於 – Patrioticcow

1

你應該有this代替#my_videos

$('#my_videos').live('click', function() { 
    var ide = $(this).attr('title'); 
    alert (ide); 
}); 
2

你的情況的問題是使用相同ID的多個實例。

根據定義,ID只能在整個頁面上出現一次。沒有2個元素可以具有相同的ID。

這就是爲什麼當jQuery搜索您單擊的元素時,它只會找到具有該ID的第一個元素。您必須改用類名稱

另外,您應該使用$(this)來引用觸發事件的元素(您單擊的那個),而不是一些與選擇器匹配的隨機元素。

$('.my_videos').live('click', function() { //Note the classname use and not id 
    var ide = $(this).attr('title'); 
    alert(ide); 
}); 

或者使用JavaScript的本地this更短的版本:

$('.my_videos').live('click', function() { 
    var ide = this.title; 
    alert(ide); 
}); 
+0

+1添加什麼爲什麼@Patrioticcow做不會工作。 – Craig