由jquery更新的数据属性值在DOM中不可见
我正在通过jQuery更新数据属性,如:
jQuery('div').data('hidden', 'true'); alert(jQuery('div').data('hidden'));
数据属性值已更改并返回新值,该值为true
但DOM仍显示旧值false
。
当您使用.data()更新数据值时,它正在更新由jQuery管理的内部对象,因此它不会在data-*
属性中更新
我如此糟糕地在灌木丛中殴打:(并且能够解决问题。如果html是动态的并且数据属性在第一次访问后更改,我们无法使用jquery数据方法实现这一点。
根据jQuery.data()
数据属性在第一次访问数据属性时被拉出,然后不再被访问或变异(然后所有数据值都在内部存储在jQuery中)。
所以我做的是,将它改为attr方法,它不会给你整数的解析值,所以你必须使用’+’操作数转换如下:
+ myElement.attr('data-index');
注意: 您必须小心,如果数据attr中有任何字符串,它会将结果转换为NaN。 顺便说一句,这是您选择的代码实现。