2014-02-15 97 views
-2

我的HTML>對象[對象的對象]無方法 '的getAttribute'

<a href="javascript:void(0)" id="menuMain" class="active tabButton" data-tabID="tabMain">M</a> 

我的javascript>

$(document).ready(function(){ 
$("#menuMain").click(function(){ 
    alert($("#menuMain").getAttribute("data-tabID")); 
}); 

});

它拋出一個錯誤:「對象[對象的對象]無方法‘的getAttribute’」,

朝向溶液中的任何幫助或指導所理解的,感謝。

回答

3
$(document).ready(function() { 
    $("#menuMain").click(function() { 
     alert($("#menuMain").attr("data-tabID")); 
    }); 
}); 
+0

'getAttribute()'是一個JavaScript函數,而'.attr()'是與jquery等效的 – Popo

2

$("#menuMain")返回一個jQuery對象。 jQuery對象與常規DOM對象不具有相同的成員函數。您必須使用通過其命名空間提供的功能。特別是,檢索數據屬性的值等價功能是data()

alert($("#menuMain").data("tabID")); 
//     ^^^^ 

作爲事實上,因爲你是在回調內部的click()功能的jQuery對象上觸發的this值是它引用的元素。正因爲如此,您不必重複指定元素的ID。您可以使用$(this)代替:

alert($(this).data("tabID")); 
// ^^^^^^^ 
+0

感謝您的解釋,並且還需要在較低的情況下,因此它是警報($(本)。數據(「tabid」)); –

+0

@DavidPires它爲什麼需要小寫?在你的例子中,'tableID'中的'ID'是大寫字母...... – 0x499602D2

+0

「所有data- *名稱都存儲在jQuery數據對象的camelCase中,使用W3C規則。」,所以'tabID'在camelcase'tabid'中if if在camelCase tabId中獲得了tab-ID。 –

相關問題