2010-10-01 96 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

相關問題