attr(),prop(),和data()的区别

本文详细介绍了在jQuery中attr()与prop()方法的区别,包括它们的不同应用场景:前者适用于自定义DOM属性,后者用于处理元素固有属性。同时对比了这两种方法与原生JavaScript属性操作之间的联系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    在面试时遇到了attr(),prop(),和data()的区别这个问题,给胡说八道了一通,感觉很惭愧,特查找了相关资料,做了一些总结。

1、使用方式不同

对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。

对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。

<a href="http://www.baidu.com" target="_self" class="btn">百度</a>
这个例子里<a>元素的DOM属性有“href、target和class",这些属性就是<a>元素本身就带有的属性,也是W3C标准里就包含有这几个属性,或者说在IDE里能够智能提示出的属性,这些就叫做固有属性。处理这些属性时,建议使用prop方法。
 
<a href="#" id="link1" action="delete">删除</a>
这个例子里<a>元素的DOM属性有“href、id和action”,很明显,前两个是固有属性,而后面一个“action”属性是我们自己自定义上去的,<a>元素本身是没有这个属性的。这种就是自定义的DOM属性。处理这些属性时,建议使用attr方法。

2、实现方式不同

attr()依赖的是Element对象的element.getAttribute( attribute ) 和 element.setAttribute( attribute, value ) 


// 相当于 msg.setAttribute("data_id", 145);
$msg.attr("data_id", 145);
// 相当于 msg.getAttribute("data_id");
var dataId = $msg.attr("data_id"); // 145

prop()依赖的是JS原生的 element[property] 和 element[property] = value
// 相当于 msg["pid"] = "pid值" 或 msg.pid = "pid值"
$msg.prop("pid", "pid值");
// 相当于 msg["pid"] 或 msg.pid 
var testProp = $msg.prop("pid"); // pid值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值