码迷,mamicode.com
首页 > Web开发 > 详细

jQuery1.6以上attr改用prop

时间:2019-03-15 15:55:53      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:checkbox   selected   index   lse   注意   false   名称   选中   理解   

jQuery1.6以上,attr改用prop

//设置选中
$(‘#cb‘).attr(‘checked‘,true);
</script>
这样写在Jquery1.6之前完全没问题,升级1.6到更高的版本时会发现:
$(‘#cb‘).attr(‘checked‘); 返回的是checked或者是undefined,不是原来的true和false了。 并且checked属性在页面初始化的时候已经初始化好了,不会随着状态的改变而改变。所以如果checkbox一开始是选中的,那么返回的是checked,如果一开始没被选中,则返回的是undefined

<input type=‘checkbox‘ id=‘cb‘/>
<script>
//获取是否选中
var isChecked = $(‘#cb‘).prop(‘checked‘);
//或
var isChecked = $(‘#cb‘).is(":checked");
//设置选中
$(‘#cb‘).prop(‘checked‘,true);
</script>

原因是:
它将“属性”与“特性”做了区别,属性指的是“name,id”等等,特性指的是“selectedIndex, tagName, nodeName”等等。
Jquery1.6之后,可以通过attr方法去获得属性,通过prop方法去获得特性
$("#cb").attr("tagName"); //undefined
$("#cb").prop("tagName"); //INPUT
那么,什么时候使用attr(),什么时候使用prop()?
1.添加属性名称该属性就会生效应该使用prop();
2.是有true,false两个属性使用prop();
3.其他则使用attr();
项目中jquery升级的时候大要注意这点!
根据官方建议attr(),prop()的使用:
分析了其中的原因,可以这样理解:
它将“属性”与“特性”做了区别,属性指的是“name,id”等等,特性指的是“selectedIndex, tagName, nodeName”等等。
JQ1.6之后,可以通过attr方法去获得属性,通过prop方法去获得特性。

jQuery1.6以上attr改用prop

标签:checkbox   selected   index   lse   注意   false   名称   选中   理解   

原文地址:https://www.cnblogs.com/xuqiushuo/p/10537537.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!