欢迎您访问我爱IT技术网,今天小编为你分享的javascript教程:【jQuery中attr()和prop()在修改checked属性时的区别】,下面是详细的讲解!
jQuery中attr()和prop()在修改checked属性时的区别
在做复选框全选按钮的时候,出现了一个问题,使用语句$.attr('checked',true),将复选框的属性改为被选中,在chrome浏览器中第一次点击有效后面就不行了,IE8倒是没有问题。
百度了很久找到原因是HTML的属性分为attribute和property,暂且将后者称为特性。
checked属性即分为attribute->checked,和property->true,false。
对于一个checkbox,若未定义checked="checked",alert($.attr("checked")) 的结果是undefined。若已定义则结果是checked。attribute并不随着checkbox的状态变化而改变。
使用prop($.attr("checked"))的话输出则分别为false和true。property则随其变化而变化。
所以在修改checked属性时要使用prop()。prop()在jQuery1.6版本后新增。
网上关于其他类似属性的图表:

另外关于在IE9之前版本中,如果property没有在DOM元素被移除之前删除,使用.prop()方法设置DOM元素property(简单类型除外:number、string、boolean)的值会导致内存泄露。为了安全的设置DOM对象的值,避免内存泄露,可以使用.data()方法。 目前尚未遇到,先记在这里。
关于jQuery中attr()和prop()在修改checked属性时的区别的用户互动如下:
相关问题:jQuery中attr和prop在修改checked属性时的区别
答: alert($("#chk1").prop("checked")); //弹出 false alert($("#chk2").prop("checked")); //弹出 true alert($("#chk1").attr("checked")); //弹出 undefined alert($("#chk2").attr("checked")); //弹出 checked 修改固有属性时,最好使用prop... >>详细
相关问题:jQuery中attr和prop在修改checked属性时的区别
答:有的浏览器只要写disabled,checked就可以了,而有的要写成disabled = "disabled",checked="checked",比如用attr("checked")获取checkbox的checked属性时选中的时 候可以取到值,值为"checked"但没选中获取值就是undefined。 jq提供新的方法“pr... >>详细
相关问题:jQuery中attr和prop在修改checked属性时的区别
答:单独针对checkbox来说, attr取得是一个字符串 prop取得是布尔值 比如一个 attr("checked") 是undefined prop("checked") 是false 如果是这样的,那结果分别是 checked和true >>详细
- 【firefox】firefox浏览器不支持innerText的解决
- 【Extjs】Extjs学习过程中新手容易碰到的低级错误
- 【clearInterval】js clearInterval()方法的定义
- 【ComboBox】ComboBox 和 DateField 在IE下消失的
- 【ajax】用js来解决ajax读取页面乱码-页面乱码
- 【addEventListener】addEventListener和attachEv
- 【dom】javascript dom追加内容实现示例-追加内容
- 【has】基于jquery的has()方法以及与find()方法以
- 【browser】jQuery下通过$.browser来判断浏览器.-
- 【extjs】Extjs入门之动态加载树代码-动态加载树
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
