jquery中attr和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"

用prop还是attr相关推荐

  1. Difference between prop and attr in different version of jquery

    jQuery <1.9 $('#inputId').attr('readonly', true); jQuery 1.9+ $('#inputId').prop('readonly', true ...

  2. jquery1.6中的.prop()和.attr()异同

    1.从1.5.2升级到1.6.1 通过介绍新方法.prop()以及.attr()方法的改变,jQuery1.6.1引起了一场关于attributes和properties之间有何区别和联系的激烈讨论. ...

  3. prop和attr的区别-jQuery

    今天简单说下prop和attr在设置,获取和删除属性时的区别: 1.设置属性 为了便于看到效果,先在网页中写入ul标签,里面插入属性title,如下: <ul><li title=& ...

  4. Jq中prop()和attr()之间的区别

    今天在写复选框的全选和不全选中发现了一个问题,prop和attr这两个方法看起来十分相似,但是实际上还是有着一定的区别的.比如在判断复选框的checked这个属性的时候,使用attr取值和prop取值 ...

  5. JQ中prop与attr区别

    功能:获取匹配的元素集中第一个元素的属性(property)值或设置每一个匹配元素的一个或多个属性. 一.attr和prop区别 attr 是从页面搜索获得元素值,所以页面必须明确定义元素才能获取值, ...

  6. javascript prop和attr的区别

    在网上找了一些资料,通过自己去寻找,尝试,此次做一次总结. 1/  attr()是jQuery 1.0版本就有的函数,    prop()是jQuery 1.6版本新增的函数.毫无疑问,在1.6之前, ...

  7. $.prop()和$.attr() 区别用法

    都用于读取和设置DOM元素节点的属性 不同: $.attr()用于DOM元素本身的属性 $.prop()用于DOM节点对应的JS属性(源于DOM元素到JS对象的映射) 源于两者在jquery类库的实现 ...

  8. prop()和attr()

    attributes和properties(属性值)之间的差异在特定情况下是很重要.jQuery 1.6之前 ,.attr()方法在取某些 attribute 的值时,会返回 property 的值, ...

  9. jquery中prop()和attr()的使用

    jquery1.6+出现的prop()方法. • 对于HTML元素本身就带有的固有属性,在处理时,使用prop方法.  • 对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法. • ...

最新文章

  1. 开发Eclipse自定义控件
  2. 机器学习系列之EM算法
  3. currentdate mysql_Mysql】Mysql中CURRENT_TIMESTAMP,CURRENT_DATE,CURRENT_TIME,now(),sysdate()各项值的区别...
  4. 数据挖掘之关联分析七(非频繁模式)
  5. 201621123003《Java程序设计》第一周学习总结
  6. 大数据之-Hadoop3.x_MapReduce_切片源码分析---大数据之hadoop3.x工作笔记0104
  7. AD画封装的血泪教训:有叉的放在外侧
  8. Win7如何设置标准账号无法访问我的D盘
  9. whoami 显示“我是谁”
  10. 台式计算机硬件的拆装,电脑拆解实例:苹果台式机拆机换盘详细步骤!
  11. Java数组怎么传给形参_在Java程序中,如果方法的形参是数组,则调用该方法时传递的是数组的...
  12. supervise进程管理利器
  13. 蚀刻后残留物和光刻胶去除技术
  14. RAR文件格式-笔记
  15. 数据仓库、数据集市和数据湖有什么区别?
  16. 网易2018校园招聘:射击游戏 [python]
  17. RTSP协议学习笔记
  18. 30岁IT人裸辞,悔断肠!
  19. html文字冒险游戏,文字类谍战交互游戏能有这么好玩?全靠这部超神原作
  20. java 去掉pdf文字_Java 添加和删除PDF图层

热门文章

  1. Halcon知识: 矩形测量
  2. php服务器队列执行,lnmp php添加队列服务器的配置
  3. matlab 直方图_MATLAB作图实例:19:用二元直方图分析图片颜色
  4. html 跨域_常见跨域解决方案以及Ocelot 跨域配置
  5. 2021-01-07 python opencv调节图片亮度与对比度
  6. python读取配置文件简单封装
  7. python3 bytes和str转换,解决图片base64调用api的问题
  8. 数据结构实验之二叉树四:(先序中序)还原二叉树
  9. Caffe学习系列(3):视觉层(Vision Layers)及参数
  10. Spring IOC 容器源码分析 - 填充属性到 bean 原始对象