0

在什么情况下,此代码将返回 0?

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

而这段代码,会返回真正的价值吗?

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

谢谢。

4

1 回答 1

4

如果.data("id").attr("data-id")正在返回不同的值,则数据属性的值id已经通过 jQuerydata()函数更新,或者data-id属性值自第一次调用.data("id").

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

文档中:

data- 属性在第一次访问 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'
于 2013-08-20T12:42:34.933 回答