问答详情
源自:3-9 jQuery的属性与样式之元素的数据存储

关于.data(key,value)和.attr(key,value)

.data(key,value)和.attr(key,value)设置属性,是不是都能达到存储的效果,有什么区别吗

提问者:qiangeyaoxuexi 2016-09-18 16:31

个回答

  • 慕雪0249800
    2018-04-19 15:56:07

    楼上说的对

  • 小白小白小白啦
    2017-01-11 22:29:50

    上面那个人回答是不对的,不要误导了其他人啊。。。attr可以设置任意的属性值给元素,当然也可以设置一些本来就不存在的,比如.attr('fgf','呵呵'),之前我写前端要存储一些数据就是这样干的,那时候不知道.data方法,现在既然有了.data方法就不要用.attr和.prop了,马云说过专业的事交给专业的人去干。。。你从名字上就看出来了,.data是数据存储的,.attr是属性设置的。再说点其他的,之前我设置多选框选中问题时,发现设置多选框选中和不选中要用prop用attr是不行的。.prop和.attr是有区别的,我的理解是prop操作的是节点原生属性,attr操作'额外'属性。

  • ymcai
    2016-09-18 17:24:46

    .attr操作dom节点自带的属性,如一个<input/>节点本身具备type属性,用.attr可以改变其type,但你不能自己定义一个不存在的属性,也就是说.attr是不能达到任意存储数据的作用的。

    .data的作用才是存储自定义键值对。