javascript - Jquery获取所有复选框并按复选框名称分组

标签 javascript jquery

嗨,我有不同名称的复选框:

名称 - 小时,值 - 天。例如:value="1"表示星期一,name="0609"表示上午 06 点至上午 9 点。

<input type="checkbox" value="1" name="0609">
<input type="checkbox" value="2" name="0609">
...
<input type="checkbox" value="7" name="0609">

<input type="checkbox" value="1" name="0912">
<input type="checkbox" value="2" name="0912">
...
<input type="checkbox" value="7" name="0912">

我需要获取所有已检查和未检查的输入,并按名称合并到数组中,例如:如果检查除星期一之外的所有日期

'0609' => 0, 1, 1, 1, 1, 1, 1

我该如何解决这个问题?

我试图使用 .map 但我得到了未分组的值...

        var valuess = $('input:checked').map(function() {
            return this.value;
        }).get();
        console.log(valuess);

更新:

        var obj = {}; // Define object

        // Loop over all checkboxes
        $('input[type=checkbox]').each(function() {
            var name = $(this).attr('name'); // Get name of this checkbox
            var sThisVal = (this.checked ? "1" : "0");
            if (obj[name]) {
                obj[name].push(sThisVal); // Push value
            } else {
                obj[name] = [sThisVal]; // Create array and push value
            }
        });
        console.log(obj);

最佳答案

检查一下:

var obj = {}; // Define object

// Loop over all checkboxes
$(':checkbox').each(function() {
    var name = $(this).attr('name'); // Get name of this checkbox

    if (obj[name]) {
        obj[name].push($(this).val()); // Push value
    } else {
        obj[name] = [$(this).val()]; // Create array and push value
    }
});
console.log(obj);

关于javascript - Jquery获取所有复选框并按复选框名称分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31071308/

相关文章:

javascript - 使用 Javascript 进行光栅化在 Apache 服务器上看起来有所不同

jquery - 日期选择器不工作

javascript - vue.js + vuetify 单选按钮在具有相同值时不起作用

javascript - 具有隐藏行的表的 JQuery 选择器 - 交替行着色

javascript - 如何在 jquery-ui 小部件中存储内部属性?

javascript - jquery 是 (":focus")在 safari 中无法工作。此 IF($(this).parents ('form' ).find ('.back' ).is( ":focus") ) 的任何解决方案

javascript - 使 div 跟随屏幕不起作用

javascript - 在 iframe 中加载 Youtube Player API

javascript - 如何在 JavaScript 中获取 foreach 循环之外的数据?

javascript - 如何从 mongoDB 获取特定日期之间的数据(日期在我们的文档中存储为createdOn)?