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

来源:互联网 发布:手机测评软件 编辑:程序博客网 时间:2024/06/09 14:35

区别:
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
原创粉丝点击