2013-06-28 27 views
0

我試圖從不同的onclicks獲取id attr。jQuery在點擊時獲取多個id屬性

這裏是我有的html。

<div id="name-1"> 
    <a href="#" class="view"> 
<div> 

<div id="name-2"> 
    <a href="#" class="view"> 
<div> 

<p>Name: <span class='name'></span></p> 

<script> 
$(".view").click(function() { 
    var id = $(".view").closest("div").attr("id"); 
    $('.name').html(id);  
}); 
</script> 

當我點擊我看到的第一個視圖「名稱-1」,但是當我點擊第二個觀點沒有任何反應。另外,當我點擊第二個名稱時,它顯示「名稱-1」。我知道這可能很容易解決,但它是星期五,所以我感謝幫助。

回答

4

變化

var id = $(".view").closest("div").attr("id"); 

var id = $(this).closest("div").attr("id"); 

現在你當前的代碼是在頁面上查看第一個.view,而不是它的點擊事件被觸發時.view

1

原因是您正在使用view類選擇器來獲得最近的ID。所以,它尋找第一個可用的view,併爲您獲得第一個DIV的ID。

考慮使用$(this)來獲取點擊元素的最近ID。

$(".view").click(function() { 
    var id = $(this).closest("div").attr("id"); 
}); 

不要忘記閱讀這篇文章的 「jQuery的這個」:http://remysharp.com/2007/04/12/jquerys-this-demystified/