2010-10-01 57 views
2

jsFiddle为什么我无法使用jQuery获取此按钮的ID?

我试图使用$(this).id得到一个按钮的ID,但它是未定义的。我究竟做错了什么?谢谢阅读。

编辑:代码从的jsfiddle例如:

HTML

<button id='remove_button' type='button'>Remove</button>​ 

jQuery的

$('#remove_button').mouseup(function(){ 
    alert($(this).id); 
});​ 
+0

请在发帖提问示例代码。这次我为你照顾它。谢谢。 :o) – user113716 2010-10-01 23:46:17

回答

8

$(this)

给你来一个jQuery对象的引用。您可以使用attr()函数像马里奥说,甚至只是这样做:

this.id

+2

+1绝对使用这种方法。把'this'包装在一个jQuery对象中,并且调用一个方法来访问一个属性,这很愚蠢。 – user113716 2010-10-01 23:48:16

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

:d

编辑

虽然我的回答是正确的,但更好的方法就是像dana说。 因此,您应该接受dana而不是我的答案。

+0

你应该真的使用'this.id',而不是上面的。通过上述操作,您本质上可以在街区周围跑步,然后跪下并绑上鞋带,而不是简单地跪下并系上鞋带。 -------你应该保留使用'。attr()'用于具有跨浏览器兼容性问题的属性,或者在不能直接使用DOM元素的情况下(例如,如果给定的变量是jQuery对象)。 – 2010-10-02 01:20:14

+0

我想你是对的。 :) – 2010-10-02 11:05:40

2

您可以使用:

this.id // <== more efficient and faster 

$(this).attr("id") 

this是一个DOM元素,你可以看到this MDC reference page你可以使用id DOM元素的属性来设置或获取元素的id

你可以创建一个jQuery对象出this包装它像这样:$(this)$(this)不是DOM元素,因此它不具有id属性。相反,您可以使用jQuery方法获取由jQuery对象$(this)表示的DOM元素的id

每当您可以直接使用本地DOM属性时,它比使用jQuery方法更快,因此this.id$(this).attr("id")更有效。

jsFiddle example

相关问题