2013-06-24 50 views
3

搜索Google僅給出了jQuery的.data()函數示例。jQuery「this」的HTML5數據屬性

不過,我的問題是使用jQuery的「本」,因爲這樣的:

$('#opener').live('click', function() { 
var x = this.name; 
var y = this.title; 

<a style='cursor:pointer' id='opener' name='$x' title='$y'>採用的值,它包含PHP變量,在我的問題不是那麼重要,但。

現在,我們假設我想擺脫這樣一種冒險的嘗試,將額外的數據存儲在HTML元素中,並通過使用data-attribute將其正確存儲在HTML5中。因此,錨看起來是這樣的:

<a style='cursor:pointer' id='opener' data-x='$x' data-y='$y'> 

我怎麼會那麼可以使用「這個」 jQuery中就像上面,並把它拿起數據?我試過this.data('x')this.data('y'),但那不起作用,這就是我在這個主題上找到的。

回答

10

您需要使用

$(this).data('x') 

裏面的回調方法,this引用DOM對象,但.data()方法是在該元素的jQuery對象包裝定義。所以你需要用jQuery使用$(this)來包裝dom元素。

+0

'this.dataset.x'也適用於較新的瀏覽器。 – Blender

+3

@Blender yes如果你只想支持html5數據api支持的瀏覽器,但暫時我認爲最好把它委託給jQuery來支持跨瀏覽器的支持 –