javascript - 请问这里勾选了选择框为什么会输出index值?
PHP中文网
PHP中文网 2017-04-10 16:11:15
[JavaScript讨论组]
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <p id="box">
        <p class="auth"><input type="checkbox" class="ckbox" value="项目进度查看" />项目进度查看</p>
        <p class="auth"><input type="checkbox" class="ckbox" value="类别配置"/>类别配置</p>
        <p class="auth"><input type="checkbox" class="ckbox" value="系统配置"/>系统配置</p>
        <p class="auth"><input type="checkbox" class="ckbox" value="角色管理"/>角色管理</p>
        <p class="auth"><input type="checkbox" class="ckbox" value="操作人员"/>操作人员</p>
        <p class="auth"><input type="checkbox" class="ckbox" value="个人管理"/>个人管理</p>
        <p class="auth"><input type="checkbox" class="ckbox" value="项目进度业务负责人编辑"/>项目进度业务负责人编辑</p>
        <p class="auth"><input type="checkbox" class="ckbox" value="项目进度产品负责人编辑"/>项目进度产品负责人编辑</p>
        <p class="auth"><input type="checkbox" class="ckbox" value="项目进度状态进度编辑"/>项目进度状态进度编辑</p>
    </p>
    <button id='btn'>click</button>
    <script src="http://cdn.bootcss.com/jquery/3.0.0-alpha1/jquery.js"></script>
    <script>
    $('#btn').click(function(){

                var arr = [];

                for(var i = 0;  i < $('.ckbox').length; i++) {
                 
                    if( $( $('.ckbox')[i] ).prop('checked') ) {
                        arr[i] = $( $('.ckbox')[i] ).val();
                        console.log(arr)
                    }else{
                        console.log('false')
                    }
                };
            })

    </script>
</body>
</html>

比如勾选了 系统配置,角色管理,操作人员,个人管理
那么会输出[2: "系统配置", 3: "角色管理", 4: "操作人员", 5: "个人管理"]

请问怎么输出不带index值的数组?

PHP中文网
PHP中文网

认证0级讲师

全部回复(5)
伊谢尔伦

你是不是想这么写?

$('#btn').click(function() {

  var arr = [];

  $(':checked').each(function(){
    arr.push(this.value);
  });
})
高洛峰

直接输出那个选中的值就可以了,之前是你是输出的arr数组

$('#btn').click(function(){

                var arr = [];

                for(var i = 0;  i < $('.ckbox').length; i++) {
                 
                    if( $( $('.ckbox')[i] ).prop('checked') ) {
                        arr[i] = $( $('.ckbox')[i] ).val();
                        console.log($( $('.ckbox')[i] ).val())
                    }else{
                        console.log('false')
                    }
                };
            })

黄舟

你的运行环境?
我本地Ubuntu Chromium Linux x86_64

高洛峰

arr[i] = $( $('.ckbox')[i] ).val();
这句改成 arr.push($('.ckbox').eq(i).val());
console.log(arr) 这句放到for循环的外面

黄舟

使用push将数据添加到数组。
另外console在循环体里,会导致重复输出前面的内容,而且,感觉else并没有用处,可以去掉。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

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