在什么情况下,此代码将返回 0?
$(this).parent().data("id")
而这段代码,会返回真正的价值吗?
$(this).parent().attr("data-id")
谢谢。
在什么情况下,此代码将返回 0?
$(this).parent().data("id")
而这段代码,会返回真正的价值吗?
$(this).parent().attr("data-id")
谢谢。
如果.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'