2013-08-20 72 views
0

在什么情况下,这段代码会返回0?jQuery和数据属性

$(this).parent().data("id") 

而这段代码会返回真实值吗?

$(this).parent().attr("data-id") 

谢谢。

+0

有人已分配一个值'$(本).parent()。数据( “ID”,0)' –

+0

jQuery数据()和数据属性是分开的东西。 jQuery使用自己的缓存,而data-是本机HTML5功能。 – Virus721

+0

@ Virus721你可以使用'data()'获取'data- *'属性...... – brbcoding

回答

4

如果.data("id").attr("data-id")正在返回不同的值,然后或者数据属性id的值已通过了jQuery data()功能被更新或由于第一呼叫的.data("id")data-id属性值已经更新。

jQuery data()函数将使用元素的data-属性来初始化该数据属性的值。但是,对数据属性的更改不会反映在HTML中。因此使用data()更新值而不是也更新属性。

documentation

Data-用属性在该数据属性 访问,然后不再访问或突变的第一次拉动(所有数据值 然后存储在内部的jQuery) 。

HTML

<div id="myDiv" data-id="realValue"></div> 

jQuery的

$('#myDiv').data('id'); //returns 'realValue' 
$('#myDiv').data('id', 0); 
$('#myDiv').data('id'); //returns 0 
$('#myDiv').attr('data-id'); //returns 'realValue'