2010-04-16 152 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); 
});