Jquery中attr()和prop()的区别

本文介绍了在处理HTML元素属性时如何区分使用prop()和attr()方法。对于固有属性推荐使用prop(),对于自定义属性则使用attr()。通过具体实例展示了不同属性的正确处理方式。

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

区别:
1. 对于HTML元素本身就带有的固有属性,在处理时,使用prop()方法。
2. 对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr()方法。

举例说明:

例子1、

<a href="http://www.taobao.com" target="_blank" class="btn">淘宝</a>

这个例子里a标签元素的DOM属性有“href、target和class”,这些属性就是a标签元素本身就带有的属性,也是W3C标准里就包含有这几个属性,或者说在IDE里能够智能提示出的属性,这些就叫做固有属性。处理这些属性时,建议使用prop()方法,用attr()方法也是可以获取的。

<a href="#" id="edit" action="edit-action" data-id="12">编辑</a>

这个例子里a标签元素的DOM属性有“href、id、action和data-id”,很明显,前两个是固有属性,而后面“action、data-id”属性是我们自己自定义上去的,a标签元素本身是没有这个属性的。这种就是自定义的DOM属性。处理这些属性时,建议使用attr方法。使用prop方法取值和设置属性值时,都会返回undefined值。最后的属性”data-id”,用data()方法获取也是可行的。

例子2、

<input id="chk1" type="checkbox" />男
<input id="chk2" type="checkbox" checked="checked" />女

像checkbox,radio和select这样的元素,选中属性对应“checked”和“selected”,这些也属于固有属性,因此需要使用prop()方法去操作才能获得正确的结果。

    console.log($("#chk1").prop("checked"));//false
    console.log($("#chk2").prop("checked"));//true

    console.log($("#chk1").attr("checked"));//undefined
    console.log($("#chk2").attr("checked"));//checked
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PeakXin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值