首页 小组 问答 话题 好文 素材 用户 唠叨 我的社区

[分享].data() .attr() .prop()方法区别

风轻yLv.1种子选手
2024-09-17 11:44:24
0
42

property、attribute区别

简单总结下;

  • property是指DOM对象中默认的基本属性,它们会在初始化的时候在DOM对象上创建,比如id;标签自定义的属性不会出现在property中。

  • attribute是HTML标签上的特性,是指标签定义的属性,包括自定义的属性(data-*);它的值只能够是字符串;

.attr()

  • 本质调用的是getAttribute和setAttribute方法,操作DOM对象上的attributes

  • 对传入的attrName大小写不敏感,attr(‘name’)和attr(‘NAME’)返回值是一样的。

  • 如果传入的值是null、undefined,会调用toString,那么返回的是"null"、"undefined"。如果value是一个对象,返回值是"[object, object]";

var $e = $('#a');
a.attr('attr1', {name: 'name1'});
a.attr('attr1'); // "[object object]"

.prop()

  • 本质是直接对DOM对象上的property进行操作

  • 不能操作自定义属性(data-*)

  • 性能上 .prop()>.data()>.attr(),不同版本的.data()和.attr()的性能关系有差异,不过.prop()总是最优的

.data()

  • 本质其实是将一个 “cache” 附加到了对象上,并使用了一个特殊的属性名称。

  • 第一次调用data()时会把HTML里静态绑定的数据(data-*),复制到jQuery.cache变量里

  • data()的值修改并不会影响到DOM元素上data-*属性的改变,data()的

  • 通过data()来获取数据时,key必须全小写,比如绑定data-AGE=”23”,只能通过data(‘age’)而不是data(‘AGE’)。另外注意data-last-value=”100”,只能通过data(‘lastValue’)或者data(‘last-value’)。

风轻y
风轻y

35 天前

签名 :   42       0
评论
站长交流