首页 新闻 会员 周边 捐助

JS中复选框的状态判断问题

0
悬赏园豆:10 [已解决问题] 解决于 2019-07-12 11:04

今天我在做复选框的状态判断时,

document.getElementById("复选框id").checked==false;
写成了
document.getElementById("复选框id").checked=="";
发现运行起来没有问题
然后又将
document.getElementById("复选框id").checked==true;
写成了
document.getElementById("复选框id").checked=="checked";
然后发现运行不了
难道""和false是等价的吗还是编译器的问题?希望经验丰富的大佬解答下

我叫张小凡的主页 我叫张小凡 | 初学一级 | 园豆:70
提问于:2019-07-11 21:59
< >
分享
最佳答案
0

因为复选框默认是false,你看页面首次加载时默认效果就知道了。
当你给“”这个值的时候,它发现不是true,所以默认false了吧。
“”和false不等价,个人觉得这就是一个小的语法优化,它多数时候不管你给什么值,只要不是true,默认就是false,除非是它实在不允许的值,就会抛异常。
JS是个弱类型的语言,所以才会有这种现象。

收获园豆:7
顾星河 | 大侠五级 |园豆:7281 | 2019-07-12 09:24

感谢

我叫张小凡 | 园豆:70 (初学一级) | 2019-07-12 11:03
其他回答(2)
0

复选框的状态=""默认不选中,和布尔类型相似。
设置复选框状态尽量用 XXX.prop("checked", true);

收获园豆:1
土狼一族 | 园豆:171 (初学一级) | 2019-07-12 09:21

感谢

支持(0) 反对(0) 我叫张小凡 | 园豆:70 (初学一级) | 2019-07-12 11:03
0

复选框全选赋值时用$('input[type=checkbox]').prop('checked',true);
用attr时有些版本会只能执行一次,所以用prop
如果你要去恢复或者改变DOM状态值,类似checked,selected,disabled等表单元素的状态,最好使用.prop()方法。

收获园豆:2
你风致 | 园豆:2215 (老鸟四级) | 2019-07-12 10:13

感谢

支持(0) 反对(0) 我叫张小凡 | 园豆:70 (初学一级) | 2019-07-12 11:03
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册