由jquery更新的数据属性值在DOM中不可见

时间:2013-07-16 03:52:53

标签: jquery custom-data-attribute

我正在通过jQuery更新数据属性,例如:

jQuery('div').data('hidden', 'true');
alert(jQuery('div').data('hidden'));

数据属性值已更改并返回新值true,但DOM仍显示旧值false

2 个答案:

答案 0 :(得分:36)

当您使用.data()更新数据值时,它正在更新由jQuery管理的内部对象,因此不会在data-*属性中更新

答案 1 :(得分:3)

我在灌木丛中如此糟糕:(并且能够解决问题。如果html是动态的,并且数据属性在访问之后更改了数据属性,我们就可以使用jquery数据方法实现此目的。第一次。

根据jQuery.data()

  

数据属性第一次被拉入数据属性   访问,然后不再访问或变异(所有数据值   然后在内部存储在jQuery中。

所以我做的是,把它改成了attr方法,它不会给你整数的解析值,所以你必须使用' +'转换的操作数如:

+ myElement.attr('data-index');

注意:你必须要小心,如果数据attr中有任何字符串,它会将结果转换为NaN。顺便说一下,您可以选择实施代码。