2013-07-16 102 views

回答

31

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

+6

如果我使用'attr',那么它的工作原理 – user007

+1

@HowToPlease是的,attr()更新dom属性,这两个服务都是不同的目的。 –

+0

你为什么要首先更新元素属性 –

2

我旁敲侧击如此糟糕:(并能解决这个问题。这个使用jQuery数据的方法如果HTML是动态的,数据访问属性后的第一时间后改为像我们接缝不能做实现。

根据jQuery.data()

数据- 在在第一次访问数据属性 访问然后不再被访问或变异(所有数据值 然后存储在jQuery内部)时首先拉扯贡品。

所以我所做的是,它改变到不会给你整数分析得到的值ATTR方法,所以你必须使用“+”操作数转换一样:

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

注:您必须小心,如果数据attr中有任何字符串,它会将结果转换为NaN。顺便说一句,这是你选择的代码实现。