我正在更改data-demo
元素的div
属性,当我想在另一个事件中检查它时,它总是显示它的初始值而不是当前值。
这是我正在使用的代码:
$('#showValue').click(function(){
alert($('.value').data('demo'));
});
$('.update').click(function(){
$('.value').text('updated').attr('data-demo', 'updated');
});
为什么会这样?
以下是我所谈论的例子:http://jsfiddle.net/f5Cpm/
感谢。
答案 0 :(得分:7)
首次初始化内部数据后,它永远不会返回到属性来获取或设置值,因此如果您已经使用了.data,则更新属性将不会更新存储在.data()中的内容。元件。
了解更多here
答案 1 :(得分:4)
jQuery .data()
函数并不真正支持HTML5数据集功能,而是将所有html5数据集数据加载到自己的数据集合中。因此,通过更改属性对数据集的更新不会反映在jQuery内部数据集合中。
换句话说,您需要使用dataset.demo
,$().data("demo")
或$().attr("data-demo")
。第二个优点是,当你在应用程序的其余部分使用jquery时,它当然是跨浏览器和jQuery的一部分。