jquery中attr和prop的区别

简介: 在高版本的jquery引入prop方法后,什么时候该用prop?什么时候用attr?它们两个之间有什么区别?这些问题就出现了。 关于它们两个的区别,网上的答案很多。这里谈谈我的心得,我的心得很简单: 对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。

在高版本的jquery引入prop方法后,什么时候该用prop?什么时候用attr?它们两个之间有什么区别?这些问题就出现了。

关于它们两个的区别,网上的答案很多。这里谈谈我的心得,我的心得很简单:

  • 对于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方法。使用prop方法取值和设置属性值时,都会返回undefined值。

 

再举一个例子:

<input id="chk1" type="checkbox" />是否可见
<input id="chk2" type="checkbox" checked="checked" />是否可见

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

$("#chk1").prop("checked") == false
$("#chk2").prop("checked") == true

如果上面使用attr方法,则会出现:

$("#chk1").attr("checked") == undefined
$("#chk2").attr("checked") == "checked"

全文完。

 

作者:Tyler Ning
出处:http://www.cnblogs.com/tylerdonet/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过以下邮箱地址williamningdong@gmail.com  联系我,非常感谢。

目录
打赏
0
0
0
0
2
分享
相关文章
|
10月前
|
jQuery :nth-of-type(n)选择器的用法详解
jQuery中,:nth-of-type(n)选择器可以对selector选择器匹配选择到的所有HTML元素进行二次匹配选择,为了更好地阐述:nth-of-type(n)的语法,这里假设selector是一个元素p选择器,如此,:nth-of-type(n)可以用于匹配p元素选择器选择到的p元素指向的父元素中第n个类型为p的子元素,而且与p是否是该父元素的第n个子元素无关,比如
69 5
jquery attr()方法
【8月更文挑战第24天】在jQuery中,`attr()` 方法简化了对元素属性的操作。它可获取或设置属性值,支持四种用法:1) `attr(属性名)` 获取属性值;2) `attr(属性名, 属性值)` 设置属性值;3) `attr(属性名, 函数)` 设置动态属性值;4) `attr(属性对象)` 批量设置多个属性值。例如,获取或修改列表项的 `title` 或 `value` 属性。此外,`removeAttr()` 可用于删除属性。这极大地提高了DOM操作的效率和便捷性。
80 7
jQuery 属性操作 attr()、removeAttr()、prop()
jQuery 属性操作 attr()、removeAttr()、prop()
72 0
jquery attr()方法获取input的checked属性问题
jquery attr()方法获取input的checked属性问题
146 0
jquery里prop和attr的区别
  本文通过具体的实例来讲述jquery里prop和attr的区别及使用方法。 在jquery里,我们要获取一个标签元素的属性,可以用attr或者prop,那么两者有什么区别呢? 其实很简单: attr可以用来获取或生成“直接写在html标签里的属性” prop可以用来获取元素的JS属性,如scrollHeight,offsetHeight等。
1472 0
jQuery|容易混淆的first、first-child、first-of-type
first与first-child 在使用过程中容易混淆。这次我们就把他理清楚。其实这是两个概念。 first:指集合中的第一个。举例:7层楼住户的第一户。
993 0
第82天:jQuery中prop()和attr()的区别
在高版本的jquery引入prop方法后,什么时候该用prop?什么时候用attr?它们两个之间有什么区别?这些问题就出现了。 关于它们两个的区别,网上的答案很多。这里谈谈我的心得,我的心得很简单: 对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。
1016 0

相关课程

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等