Javascript 获取所选复选框属性的数组

Javascript 获取所选复选框属性的数组,javascript,jquery,arrays,html,checkbox,Javascript,Jquery,Arrays,Html,Checkbox,在我目前正在开发的web应用程序中,有很多地方我有许多HTML复选框,需要将它们转换为所选项目的JS数组。例如: 然后我有很多这样的逻辑来将所选值打包到一个数组中: var项目=[]; $('.示例[数据项]:选中')。每个(函数(uE){ 推送(数字($(e).数据('item')); }); 我的问题是:是否有一些很好的方法可以在一行程序中实现这一点(如果需要,可以使用jQuery),例如: 我意识到我可以为此编写一个函数,如果没有其他明确的方法,我也会这样做,但我正在寻找一些内置的J

在我目前正在开发的web应用程序中,有很多地方我有许多HTML复选框,需要将它们转换为所选项目的JS数组。例如:


然后我有很多这样的逻辑来将所选值打包到一个数组中:

var项目=[];
$('.示例[数据项]:选中')。每个(函数(uE){
推送(数字($(e).数据('item'));
});
我的问题是:是否有一些很好的方法可以在一行程序中实现这一点(如果需要,可以使用jQuery),例如:

我意识到我可以为此编写一个函数,如果没有其他明确的方法,我也会这样做,但我正在寻找一些内置的JS魔术,可以一次完成这一切


为了完整起见,这里有一个片段:

$(“#按钮”)。单击(函数(){
var项目=[];
$('.示例[数据项]:选中')。每个(函数(uE){
推送(数字($(e).数据('item'));
});
警报(JSON.stringify(items));
});
label{display:flex;align items:center;}
div{display:inline flex;flex direction:column;}
按钮{margin:1ex;}

项目3
项目5
项目7
项目11
项目13
项目17
项目19
点击我

是,您可以使用地图功能:

var tempValue=$('input:checkbox').map(function(n){
          if(this.checked){
                return  this.value;
              };
       }).get().join(',');
   console.log(tempValue);

是,您可以使用地图功能:

var tempValue=$('input:checkbox').map(function(n){
          if(this.checked){
                return  this.value;
              };
       }).get().join(',');
   console.log(tempValue);

我看不出您的代码有任何问题,但另一种方法是使用
map()
并返回您需要的内容:

$(“#按钮”)。单击(函数(){
var items=$(“.example[数据项]:选中”).map(函数(){
返回$(此).data('item');
}).get();
控制台日志(项目);
});
标签{
显示器:flex;
对齐项目:居中;
}
div{
显示:内联flex;
弯曲方向:立柱;
}
钮扣{
保证金:1ex;
}

项目3
项目5
项目7
项目11
项目13
项目17
项目19
点击我

我看不出您的代码有任何错误,但另一种方法是使用
map()
并返回您需要的内容:

$(“#按钮”)。单击(函数(){
var items=$(“.example[数据项]:选中”).map(函数(){
返回$(此).data('item');
}).get();
控制台日志(项目);
});
标签{
显示器:flex;
对齐项目:居中;
}
div{
显示:内联flex;
弯曲方向:立柱;
}
钮扣{
保证金:1ex;
}

项目3
项目5
项目7
项目11
项目13
项目17
项目19
点击我

var items=$('.example[data item]:checked').map(function(){returnnumber($(this).data('item');}).get()@Jason。。。检查这把小提琴。。来源是@Shiladitya哦,太棒了,太简单了。谢谢试试这个
var items=$('.example[data item]:checked').map(function(){returnnumber($(this.data('item'));}).get()@Jason。。。检查这把小提琴。。来源是@Shiladitya哦,太棒了,太简单了。谢谢试试这个很棒的方法,我用
var-items=$.map($('.example[data-item]:checked'),(e)=>+e.dataset.item)使它变得更短
(刚刚从中发现了
+
技巧)。棒极了,我使用
var items=$.map($('.example[data item]:checked'),(e)=>+e.dataset.item)使它变得更短(刚刚从中发现了
+
技巧)。
const checkedItems = Array.from(document.querySelectorAll('[checked]')).reduce((items, el) => {
   // save whatever you want from the elmenent here
   items = items.concat(el)
   return items;
}, [])