首页 > 其他 > 详细

elem.attr()无法正确判断checkbox是否选中

时间:2015-01-08 02:00:24      阅读:386      评论:0      收藏:0      [点我收藏+]

本篇文章由:http://xinpure.com/2015/01/08/%e5%85%b3%e4%ba%8ejquerychecked.attrchecked%e6%97%a0%e6%95%88%e7%9a%84%e9%97%ae%e9%a2%98/

关于Jquery $("#checked").attr("checked") 无效的问题

使用情景: 使用 Jquery 实时验证 input checkbox 是否被选中?

$("#checkedElem").attr("checked") 这是一个非常简单的 Jquery 语句,

意思很明显: 得到 id 为 checkedElem 的元素的 checked 属性值

但是出乎意料的是,不管 checkbox 元素是否被选中,返回的 checked 属性值总是 undefined。

Shen me gui?

这其实是一个元素属性的理解问题:

元素的属性有两种形式 Properties 和 Attributes

Attributes 所指的是在html中直观的表现出来的属性,如: <input type="checkbox" /> 就是指 type 属性。 元素的 Attributes 属性只会保存浏览器在渲染 html 时所赋的初始值.

Properties 则是该元素所有的属性值(包括在 html 中直接写出来和没有写出来的属性值),并且 Properties 会实时更新赋值。如: 当点击一个 checkbox 元素或者选中一个 select 元素的某个 option 时,即改变了该元素的属性值时,Properties 就会更新会当前值。

所以,如果我们并没有在 html 初始化 checked 属性的值的话,$("#checkedElem").attr("checked") 就只能得到 undefined.

而如果我们在 html 初始化 checked 属性值为 checked 的话,$("#checkedElem").attr("checked") 也会一直返回 checked.

总结,$("#checkedElem").attr("checked") 应当修改 $("#checkedElem").prop("checked"), 即可实现相应效果。

elem.attr()无法正确判断checkbox是否选中

原文:http://www.cnblogs.com/xinpureZhu/p/4209783.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!