艾玛,今天又采坑啦
事情是这样子的,就是我用$().attr去设置了一个自定义属性的值,然后再用$().data再去获取这个属性值的时候,发现获取的值还是未修改前的值,这就有毛病了
后来百度了一下,原来这二者之间还是有区别的
attr跟data本质上是属于DOM属性跟jquery对象属性的区别
也就是说当我们用attr去设置值的时候,实际上是设置DOM元素属性的值,当用data的时候实际上是设置DOM node属性的值
$().attr每次都是从DOM元素中取属性的值,和视图中标签内的属性值保持一致,修改的时候也是将值塞到DOM标签内
$().data则是从jquery对象中获得属性的值,不是从标签内获取值,修改的时候则是修改jq对象的属性值
所以,总得来说,就是用谁设置值,就用谁获取值
从性能角度来说,用data比较好,因为没有修改DOM
网友评论