javascript中,如果是布尔值的true或者false作为函数的参数,那么此参数就不用打引号吗?
黄舟
黄舟 2017-04-11 10:14:16
[JavaScript讨论组]
       function click(value){
            for (var i = 0; i < aCheckbox.length; i++) {
                aCheckbox[i].checked =value ;
            }
        }
        oBtn1.onclick = function () {
            click(true);
            }
        oBtn3.onclick = function () {
            click(false);
            }
            
            我试了几次,这样写的效果出来了,但是如果我写成click("true"), click("false"),这样的结果是点击按钮1的时候效果出来,全部选择了。但是点击按钮3的时候没有反应,所以说true和false作为参数到底需要打引号吗?
黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(2)
迷茫

不加字符串,传入的值都会先转为bool值,而”true”和”false”转为bool值为true。

ringa_lee

因为checked是布尔值属性,你加了引号就变成字符串了。

看控制台输出的类型

 <input id="checkbox-a" type="checkbox" name="fruit" value="">苹果
    <input id="checkbox-a" type="checkbox" name="fruit" value="">梨子
    <input id="checkbox-a" type="checkbox" name="fruit" value="">橙子
    <br>
    <input type="button" name="btn" value="trueBtn">
    <input type="button" name="btn" value="falseBtn">
    <script type="text/javascript">
    var aCheckbox = document.getElementsByName('fruit'),
        oBtn1 = document.getElementsByName('btn')[0],
        oBtn3 = document.getElementsByName('btn')[1];

    function demo(value) {
        for (var i = 0; i < aCheckbox.length; i++) {
            if (aCheckbox[i].type === 'checkbox') {
                aCheckbox[i].checked = value;
                console.log(typeof value);
            }
        };
    }
    oBtn1.onclick = function() {
        demo('true');
    }
    oBtn3.onclick = function() {
        demo('false');
    }
    </script>

true/false为字符串时,相当于给input标签添加了checked属性,只有一次效果
这个你找一个jQuery1.8以上的版本自己试试就知道了,1.8之前的jQuery操作checked的可以这样:

var inpt = $('input[name="checkbox-a"]');
inpt.attr("checked", true); 

但是到了1.8之后的版本,比如1.11.3,attr只能操作非bool属性,就跟上面你加了引号的true/false变成字符串效果一样,只生效一次,再点击就无效了,就需要使用:

inpt.prop("checked", true); //prop专用与bool值
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号