点击链接后获取ID

5
在下面的代码和演示 http://jsfiddle.net/jasondavis/vp2YN/3/ 中,您可以看到我需要获取被单击项的ID属性并将其分配给JavaScript中的变量。
目前,代码返回第一项的ID名称,而不管单击了哪个项目。
在Javascript中,您可以看到我已经注释了这行... var clickedID = this.attr("id"); 当我使用该行时,会出现错误提示: Object has no method 'attr'
请帮助我获取所单击链接的ID名称并将其分配给一个变量。
HTML
<a href="#" style="display:block" class="button insertcolumn" id="one_half">2 Columns</a>

<a href="#" style="display:block" class="button insertcolumn" id="one_third">3 Columns</a>

<a href="#" style="display:block" class="button insertcolumn" id="one_fourth">4 Columns</a>

Javascript/jQuery

jQuery('.insertcolumn').click(function(){

    var clickedID = jQuery('.insertcolumn').attr("id");
    //var clickedID = this.attr("id");

    alert(clickedID);

});​

Demo http://jsfiddle.net/jasondavis/vp2YN/3/

1个回答

9

您需要使用jQuery包装器引用您点击的元素!

您想使用

$(this).attr('id');

为了获取id(无需遍历DOM),最好直接调用对象id
this.id; 

无论属性类型如何,根据属性名称访问属性,请使用以下代码。
jQuery('.insertcolumn').click(function(){

    var clickedID = $(this).attr('id');


    alert(clickedID);

});​

你不一定需要使用所有的jQuery:var clickedID = this.id; - David Thomas
@DavidThomas 确实,但是如果他使用不同的名称调用属性呢?我的情况也能帮助解决!无论如何都会更新答案。 - Zevi Sternlicht
1
是的,但否则你会不必要地创建一个jQuery对象并调用一个jQuery方法。当然,指出attr()方法(及其用途)是值得的,但是......老实说,我总是建议指出并非每个DOM交互都需要jQuery。顺便说一句,我并没有暗示你的答案是错误的,只是也许值得在你的答案中添加更多信息。 - David Thomas
@DavidThomas 我已经了解到了,所以我确实会添加更多内容来更新答案! - Zevi Sternlicht

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接