首页 > 请问这里勾选了选择框为什么会输出index值?

请问这里勾选了选择框为什么会输出index值?

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <div id="box">
        <div class="auth"><input type="checkbox" class="ckbox" value="项目进度查看" />项目进度查看</div>
        <div class="auth"><input type="checkbox" class="ckbox" value="类别配置"/>类别配置</div>
        <div class="auth"><input type="checkbox" class="ckbox" value="系统配置"/>系统配置</div>
        <div class="auth"><input type="checkbox" class="ckbox" value="角色管理"/>角色管理</div>
        <div class="auth"><input type="checkbox" class="ckbox" value="操作人员"/>操作人员</div>
        <div class="auth"><input type="checkbox" class="ckbox" value="个人管理"/>个人管理</div>
        <div class="auth"><input type="checkbox" class="ckbox" value="项目进度业务负责人编辑"/>项目进度业务负责人编辑</div>
        <div class="auth"><input type="checkbox" class="ckbox" value="项目进度产品负责人编辑"/>项目进度产品负责人编辑</div>
        <div class="auth"><input type="checkbox" class="ckbox" value="项目进度状态进度编辑"/>项目进度状态进度编辑</div>
    </div>
    <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值的数组?


直接输出那个选中的值就可以了,之前是你是输出的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循环的外面


你是不是想这么写?

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

  var arr = [];

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

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

【热门文章】
【热门文章】