今天我在做复选框的状态判断时,
将
document.getElementById("复选框id").checked==false;
写成了
document.getElementById("复选框id").checked=="";
发现运行起来没有问题
然后又将
document.getElementById("复选框id").checked==true;
写成了
document.getElementById("复选框id").checked=="checked";
然后发现运行不了
难道""和false是等价的吗还是编译器的问题?希望经验丰富的大佬解答下
因为复选框默认是false,你看页面首次加载时默认效果就知道了。
当你给“”这个值的时候,它发现不是true,所以默认false了吧。
“”和false不等价,个人觉得这就是一个小的语法优化,它多数时候不管你给什么值,只要不是true,默认就是false,除非是它实在不允许的值,就会抛异常。
JS是个弱类型的语言,所以才会有这种现象。
感谢
复选框的状态=""默认不选中,和布尔类型相似。
设置复选框状态尽量用 XXX.prop("checked", true);
感谢
复选框全选赋值时用$('input[type=checkbox]').prop('checked',true);
用attr时有些版本会只能执行一次,所以用prop
如果你要去恢复或者改变DOM状态值,类似checked,selected,disabled等表单元素的状态,最好使用.prop()方法。
感谢