<!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并没有用处,可以去掉。