2010-04-16 151 views
2

我有2個錨標記jQuery的:如何獲得錨標籤的ID

<li><a id="tab1" href="#tabs-1">Issue</a></li> 
<li><a id="tab2" href="#tabs-2">Change Request</a></li> 

我有以下的jQuery:

$('a').click(function(event) { 
           alert($('a').attr("id")); 
      }); 

會發生什麼: 我總是在得到 「TAB1」彈出

我需要的是: 當用戶點擊一個錨標籤時,它的id需要在彈出的時候顯示出來

回答

9

您的問題在於警報聲明:使用$('a')時,您沒有引用警報聲明中單擊的<a>元素 - 您將檢索文檔中的第一個元素<a>

相反,引用點擊的元素,與$(this)替換$('a')

$('a').click(function(event) { 
    alert($(this).attr("id")); 
}); 
+0

感謝您的快速回復 我得到這樣 消息的錯誤:對象不支持此屬性或方法 線:57 字符:17 代碼:0 如果我替換this.attr(「id」)與此錯誤消失,但彈出窗口顯示完整的url http:// sever/folder /#tab1 – balalakshmi 2010-04-16 05:34:12

+1

@balalakshmi:好吧,好像jQuery喜歡'$(this)而不是簡單的JavaScript'this'。如果你使用'$(this)'而不是(請參閱我更新的代碼片段),它會起作用嗎? – 2010-04-16 05:44:43

+0

+1花費時間解釋爲什麼原始代碼不起作用。 – 2010-04-16 05:52:07

4

嘗試

$('a').click(function(event) { 
    var currentElemID = $(this).attr("id") // or you can use this.id 
}); 
0

可以使用ATTR得到任何元素的屬性()這樣:

$('a').attr('id'); 
0

如果你只需要訪問這個id,那麼使用jQuery是一個unne cessary開銷:

$('a').click(function(event) { 
    alert(this.id); 
});