博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jquery中的prop方法和attr方法
阅读量:6184 次
发布时间:2019-06-21

本文共 1250 字,大约阅读时间需要 4 分钟。

最近遇到一个很奇怪的问题,使用 $().attr(‘checked’)返回 undefined 。上 jquery 的官网才发现,原来是版本问题,在1.6版本之后,得使用 .prop 方法取 checked 属性。

我们看看官网 API 的说明。

The difference between attributes and properties can be important in specific situations. Before jQuery 1.6, the method sometimes took property values into account when retrieving some attributes, which could cause inconsistent behavior. As of jQuery 1.6, the .prop() method provides a way to explicitly retrieve property values, while .attr() retrieves attributes.

现在来看看attribute和property的区别:attribute是一种节点(属性节点),和元素节点是一个级别的节点,或者说你可以简单的认为attribute是一个属性节点对象,而property则是对象的一个字段,可能元素节点对象的字段或属性节点对象的字段还有文本节点对象。例如属性节点对象有个property叫nodeName, 例如: var tem1 = document.getElementById("title"); var attr = tem1.getAttributeNode("id");alert(attr.nodeName);其实Dom中关于attribute和property一个非常迷惑人的地方在于,对于常见的几个attribute,例如id, class, title等,既提供了attribute的访问方式(因为它们本来就是attribute,所以肯定可以通过attribue的方式),同时为了兼容Dom1之前的写法(有时又称之DOM0),将这几种常见的attribute的值又同时保存为元素节点对象的property, 因此我们既可以通过attribue的写法 var idValue = tem1.getAttribute("id");来获取attribute的值,又可以通过property的写法来获取attribute的值,如 var idValue = tem1.id。

总结:attribute是属性节点,它有许多方法来读写它的值,如getAttrute()/setAttribute, 而property则是节点对象的一个字段或者说属性(不是attribute)。

转载于:https://www.cnblogs.com/buffoon/p/3185700.html

你可能感兴趣的文章
asterisk meetme 会议实现
查看>>
Mockito入门
查看>>
sentry部署整理
查看>>
Oracle 列名 备注
查看>>
免费申请泛域名 ssl 证书
查看>>
我的网站搭建: (第五天) 分类和归档
查看>>
java合同生成策略
查看>>
IntelliJ IDEA使用Application Server开发普通Java Web项目
查看>>
服务器tomcat的优化
查看>>
为什么会"well-known file is not secure" ?
查看>>
ThinkPHP隐藏index.php的方法汇总【IIS/Apache/Nginx】
查看>>
<转>进程与线程的一个简单解释
查看>>
typescript 学习教程 (1)
查看>>
Hadoop 解除 "Name node is in safe mode"
查看>>
正则表达式
查看>>
字符串处理的练习~
查看>>
一名网工对Linux运维的一次经历
查看>>
jdbc中如何使用classloader
查看>>
在Struts2中方便获得Spring中的Bean方法
查看>>
「ThinkPHP开发者周刊」第2期
查看>>