2013-04-23 21 views
1

按压的ID我有使用多个按钮jQuery代码。我试图得到被按下的按钮的ID,但我得到的是'未定义'。我已经尝试了下面的两种方法,但都给出了相同的结果。取得按钮与jquery

我在做什么错?

谢谢!

$(document).ready(function() { 


    $("#btnSearch, #btnDirectorSearch, #btnEditorSearch, #btnViewableSearch").click(function() { 

     alert($(this).id); 
     alert(this.id); 
    }); 

}); 
+1

'我在做什么错'好像你观察到的'警报(this.id)结果;'错了。它提醒很好。 – Ejaz 2013-04-23 19:50:05

+0

警报($(this).id)可能会导致错误。评论它,它应该工作。 this.id是更好的解决方案,它是轻量级的设计模式。 – 2013-04-23 19:50:21

+1

“_我在做什么错?_”你没有使用谷歌。你的问题的答案很容易通过谷歌搜索“_jquery get id _”找到... – jahroy 2013-04-23 19:51:03

回答

1

退房的jQuery.attr()方法。

它可以用来提取任何属性的值。

在你的情况,你的id属性后是:

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

也可用于设置属性:

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

只要你有一个问题,你最好打赌是直接去jQuery文档(这是非常好的)。

当我用Google搜索“jquery获得ID”时,我被直接带到了上面的链接。

5

尝试使用attr

$(this).attr("id") 
+0

alert(this.id)有什么问题;'? – Ejaz 2013-04-23 19:51:43

+0

没有什么是错的。 – jahroy 2013-04-23 19:52:34

+1

'我已经尝试了下面两种方法,但都给出了相同的结果。“然后这个问题不值得回答IMO – Ejaz 2013-04-23 19:53:59

2

你需要做到这一点 -

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

你可以从标识

$(文件)。就绪(函数(){
$( “#btnSearch,#btnDirectorSearch,#btnEditorSearch,#btnViewableSearch”)。点击(函数() {
alert($(this).attr(“id”));
});
});

1

当点击处理程序正在执行时,jQuery已确保将this设置为触发该事件的DOM元素。这意味着您可以使用

alert(this.id) 

访问id属性。这是因为id attribute is exposed like this - 没有涉及jQuery。

您也可以选择使用jQuery's attr method代替:

alert($(this).attr("id")) 

这样,你从this构建一个jQuery对象,然后进行使用attr方法对象。请注意,$(this)不会有id属性。 ?