HTML Prop 与 Attr的区别
来源:互联网 发布:swmm软件下载 编辑:程序博客网 时间:2024/05/01 23:47
引言: 昨天在用bootstrap的模态框的时候,因为我需要在不同的列表中打开同一个模态框(内含一个form表单),所以需要根据列表中的内容去渲染不同的模态框,其中form表单中的有一个checkbox复选框,其中的值需要根据对应列表的值去重新渲染,我想到的做法就是通过jquery的attr方法,刚进入模态框的时候先清空checkbox复选框checked属性,然后在通过attr重现设置响应的选项checked属性为checked或者true。然后却不生效。这里就需要说一下html中prop和Attr的区别了
两者的区别在于对于自定义属性和选中属性的处理。
分别来说一下两者的区别:
一、对于自定义属性的处理
prop针对的是节点特有的属性,而arrt不单针对节点特有属性,同时可以对获取和设置自定义属性。所以涉及到自定义属性的设置和获取只能用attr。针对节点自定义属性的设置和获取推荐用prop。
例如:
html: <a id = "test" href = "url" action = "get"></a> js: var url = $("#test").prop("href") //正确 var action = $("#test").attr("action") //正确 var action1 = $("#test").prop("action") //错误
二、对于checked、selected的处理
attr 只能获取初始值, 无论是否变化
prop 能够访问、设置变化后的值,并且以true|false的布尔型返回。
这也就是为什么我会遇到设置checkbox的时候不生效的原因了,用
attr去设置checked属性不适用运用在checked变化的情景,这时候就只能用prop就设置了
$('input[type=checkbox]').each(function(){ if(type.indexOf(this.value) !=-1){ $(this).prop('checked',true); } })
注意:
用原生js也是同样的道理,涉及到原生属性的时候采用getProperty/setProperty/removeProperty
涉及到自定义属性采用getAttribute/setAttribute/removeAttribute
这只是一般建议,但是因为浏览器兼容性问题(高级浏览器(支持w3c)采用removeProperty,ie浏览器采用removeAttribute),所以设计到兼容性问题还是需要考虑一下的
总结:
当涉及到原生属性(包括selected、checked属性)采用prop,当涉及到自定义属性采用attr
阅读全文
0 0
- HTML Prop 与 Attr的区别
- prop 与attr的区别
- attr 与 prop 的区别
- attr与prop的区别
- attr与prop的区别
- attr与prop区别
- 【Jquery】prop与attr的区别
- prop和attr的区别与用法
- jquery attr与prop 的区别
- jQuery的attr与prop使用区别
- jquery中attr与prop的区别
- jQuery中attr()与prop()的区别
- jquery中attr()与prop()的区别
- jQuery中attr()与prop()的区别
- html——attr与val、attr与prop、attr与css区别
- JQUERY prop与attr区别
- Jquery attr与prop区别
- attr 和 prop 的区别
- Ajax和JQuery的$.ajax
- (个人)AR电子书系统创新实训第四周(2)
- Ubuntu16.04搭建ssh 和 samba
- 数据库会自动清除掉超时的空闲连接造成中间件连接池中连接断开的问题
- 红黑树
- HTML Prop 与 Attr的区别
- find命令常用介绍
- Linux下安装Nginx完整教程及常见错误解决方案
- Aladdin and the Return Journey LightOJ
- CSS3
- php的运作机理
- Mac下安装未认证的App
- java---单例设计模式(饿汉式)
- 机房收费系统之二(登陆窗体)