Jquery attr("checked") 返回checked或undefined 获取选中失效 - Web前端
作者:98wpeu发布时间:2026-08-01分类:网页前端技术浏览:170
导读:假设我们现在需要这样的场景:页面上有一个checkbox,我们期望通过JQuery来获得它是否选中,或者通过jQuery来让它被选中。在jq1.6之前的版本,我们会这样写我们的代...
假设我们现在需要这样的场景:页面上有一个checkbox,我们期望通过JQuery来获得它是否选中,或者通过jQuery来让它被选中。
在jq1.6之前的版本,我们会这样写我们的代码:
复制代码 代码如下:
<inputtype='Checkbox' id='cb'/>
<script>
//获取是否选中
var isChecked = $('#cb').attr('checked');
//设置选中
$('#cb').attr('checked',true);
</script>
这样写在JQ1.6之前完全没问题,可是当我们升级JQ1.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”等等。
JQ1.6之后,可以通过attr方法去获得属性,通过prop方法去获得特性
复制代码 代码如下:
$("#cb").attr("tagName"); //undefined
$("#cb").prop("tagName"); //INPUT
在jq1.6之前的版本,我们会这样写我们的代码:
复制代码 代码如下:
<inputtype='Checkbox' id='cb'/>
<script>
//获取是否选中
var isChecked = $('#cb').attr('checked');
//设置选中
$('#cb').attr('checked',true);
</script>
这样写在JQ1.6之前完全没问题,可是当我们升级JQ1.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”等等。
JQ1.6之后,可以通过attr方法去获得属性,通过prop方法去获得特性
复制代码 代码如下:
$("#cb").attr("tagName"); //undefined
$("#cb").prop("tagName"); //INPUT
相关推荐
- jQuery验证Checkbox是否选中的代码 推荐 - Web前端
- 20个非常棒的 jQuery 幻灯片插件和教程分享 - Web前端
- Jquery插件之打造自定义的select标签 - Web前端
- JQuery扩展插件Validate—4设置错误提示的样式 - Web前端
- 基于jQuery的星级评分插件 - Web前端
- jQuery ajax 路由和过滤器使用说明 - Web前端
- 关于html+ashx开发中几个问题的解决方法 - Web前端
- jQuery选择器的工作原理和优化分析 - Web前端
- 基于jQuery实现的当离开页面时出现提示的实现代码 - Web前端
- jQuery .tmpl(), .template()学习资料小结 - Web前端
- 网页前端技术排行
-
- 1[Web前端]用javascript实现默认图片替代未显示的图片 - Web前端
- 2分析Iconfont-阿里巴巴矢量常用图标库 - Web前端
- 3jQuery实例教程:制作网页中可折叠的面板 - Web前端
- 4【第六章】Foundation之按钮和下拉功能 - Web前端
- 5基于jquery的滚动条滚动固定div(附演示下载) - Web前端
- 6jQuery编写widget的一些技巧分享 - Web前端
- 7分享精心挑选的12款优秀jQuery Ajax分页插件和教程 - Web前端
- 8在Mac/PC上远程调试iPhone/iPad上的网页 - Web前端
- 9jQuery实现鼠标移到元素上动态提示消息框效果 - Web前端
- 最近发表
-
- WordPress随机显示特色图片插件:Random Post Thumbnails
- KeePass实现Chrome浏览器自动填充密码方法一
- LNMP一键包nginx 301强制跳转到https教程
- KeePass实现Chrome浏览器自动填充密码方法二
- #建站# 免费的VPS管理软件Xshell8/Xftp8中文版下载
- 使用Xshell 8连接VPS教程_电脑登录vps的方法
- WordPress评论界面添加烟花????效果
- 不同浏览器书签同步方案:坚果云+Floccus_详细使用教程
- iOS端KeePassXC客户端APP:Strongbox Password Safe
- 给WordPress评论中的Gravatar头像图片添加ALT属性


