最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
jquery中attr和prop的区别详解(非常完整)
时间:2022-06-25 17:27:26 编辑:袖梨 来源:一聚教程网
关于它们两个的区别,网上的答案很多
对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。
对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。
相比attr,prop是1.6.1才新出来的,两者从中文意思理解,都是获取/设置属性的方法(attributes和properties)。只是,window或document中使用.attr()方法在jQuery1.6之前不能正常运行,因为window和document中不能有attributes。prop应运而生了。
之前看网上对比两者的文章,更是列出一个表来区分什么标签下使用prop,什么标签下使用attr,原谅我是懒惰的人,最害怕要背的东西,所以只有自己想想办法了。
既然我们想知道他们两的区别,最好就看看他们的源代码,不要被代码长度所吓到,我们只看关键的几句:
attr方法代码(jQuery版本1.8.3)
| 代码如下 | 复制代码 |
|
attr: function( elem, name, value, pass ) { |
|
prop方法代码(jQuery版本1.8.3)
| 代码如下 | 复制代码 |
|
prop: function( elem, name, value ) { |
|
attr方法里面,最关键的两行代码,elem.setAttribute( name, value + “” )和ret = elem.getAttribute( name ),很明显的看出来,使用的DOM的API setAttribute和getAttribute方法操作的属性元素节点。
而prop方法里面,最关键的两行代码,return ( elem[ name ] = value )和return elem[ name ],你可以理解成这样document.getElementById(el)[name] = value,这是转化成JS对象的一个属性。
举几个例子就知道了。
| 代码如下 | 复制代码 |
| 百度 | |
这个例子里
| 代码如下 | 复制代码 |
这个例子里
再举一个例子:
| 代码如下 | 复制代码 |
|
checkbox" />是否可见 是否可见 |
|
像checkbox,radio和select这样的元素,选中属性对应“checked”和“selected”,这些也属于固有属性,因此需要使用prop方法去操作才能获得正确的结果。
| 代码如下 | 复制代码 |
|
$("#chk1").prop("checked") == false $("#chk2").prop("checked") == true 如果上面使用attr方法,则会出现: $("#chk1").attr("checked") == undefined $("#chk2").attr("checked") == "checked" |
|
相关文章
- 差差漫画app2026最新版-免费下载差差漫画app2026 02-04
- qq查价免费通道-qq估价一键查询方案 02-04
- 学习通官网登录入口-学习通在线平台直达链接 02-04
- 非麻瓜漫画官方网页入口下载安装最新版本-非麻瓜漫画官方正版入口安卓苹果通用 02-04
- ao3最新链接入口-ao3官网直达入口 02-04
- 差差漫画在线阅读入口-差差漫画免费登录入口 02-04