Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将选中复选框的所有项目记录到控制台_Javascript_Jquery_Checkbox_Console.log - Fatal编程技术网

Javascript 将选中复选框的所有项目记录到控制台

Javascript 将选中复选框的所有项目记录到控制台,javascript,jquery,checkbox,console.log,Javascript,Jquery,Checkbox,Console.log,我有三个复选框,它们的类名是(names)。我想说的是,如果选中了复选框,则将值记录到控制台 if( $('.names').is(':checked') ){ console.log($('.names').val()); }else{ console.log('null'); } 但是,这只是将第一个值记录到控制台(当有多个被勾选时) 是否需要创建一个数组并记录它?getter版本的val()将只返回第一个元素的值 一种解决方案是获取所有

我有三个复选框,它们的类名是(names)。我想说的是,如果选中了复选框,则将值记录到控制台

if( $('.names').is(':checked') ){
        console.log($('.names').val()); 
    }else{
        console.log('null'); 
    }
但是,这只是将第一个值记录到控制台(当有多个被勾选时)


是否需要创建一个数组并记录它?

getter版本的
val()
将只返回第一个元素的值

一种解决方案是获取所有选中值的数组并打印它

var checked=$('.name:checked').map(函数(){
返回此.value;
}).get();
如果(选中。长度){
控制台日志(选中);
}否则{
log('null');

}
虽然您已经发布了正确的答案,但值得注意的是,jQuery并不是实现“简单”的必要条件;在vanilla JavaScript中很有可能:

//创建命名函数以处理更改事件(稍后):
函数logToConsole(){
//检索与CSS选择器匹配的元素集合:
var checked=document.querySelectorAll('input[type=checkbox].names:checked'),
//将集合转换为数组:
values=Array.prototype.slice.call(选中,0)
//map在由返回的数组上迭代
//Array.prototype.slice()
.map(功能)(复选框){
//复选框是数组元素本身:
//返回选中复选框的值:
返回checkbox.value;
});
//如果集合的长度不是0:
如果(选中。长度){
//将值数组输出到控制台:
console.log(值);
}
}
document.querySelector('form')。addEventListener('change',logToConsole)

选中任何复选框以查看记录到控制台的这些复选框的值
价值:3
价值:4
价值:5
价值:6

普通Javascript解决方案:

[].forEach.call(document.querySelectorAll('.names:checked'), function (cb) {
    console.log(cb.value);
});
如果您不希望旧浏览器也使用此功能:

var cbs = document.querySelectorAll('.names:checked');
for(var i = 0; i < cbs.length; i++)
    console.log(cbs[i].value);
var cbs=document.querySelectorAll('.name:checked');
对于(变量i=0;i
$('.names:checked')。每个(函数(){console.log($(this.val());})
我是否需要创建一个数组和日志?
并不意味着OP想要数组。
如果(选中的.length){console.log(选中的);}否则{console.log('null');}
不需要==>仅
console.log(选中的)
will doI我想说的是,如果选中了复选框,则将值记录到控制台,而不是选中的数目checkboxes@Tushar:是的,我没有看到你的评论,但我已经更新了我的答案,因为你正在评论;我一发帖子就意识到了这一点。