Javascript 将所有类似的id分组为jquery中的一个id

Javascript 将所有类似的id分组为jquery中的一个id,javascript,jquery,Javascript,Jquery,我用Jquery创建了一个动态表单,会有多个选择框和文本框,如何根据用户名将数据分组成一个。例如,将有多个选择框=lim,total=20,如何将这2分组到数组中作为1 单击保存按钮时,最终数据如下所示 array( 'lim' => 40, 'tan' => 10, ); 这里的代码:你的意思是这样的 保存按钮事件侦听器应具有以下代码 $('.savebtn').on('click', function() { var mapObj = {}; $('.list

我用Jquery创建了一个动态表单,会有多个选择框和文本框,如何根据用户名将数据分组成一个。例如,将有多个选择框=lim,total=20,如何将这2分组到数组中作为1

单击保存按钮时,最终数据如下所示

array(
  'lim' => 40,
  'tan' => 10,
);

这里的代码:

你的意思是这样的

保存按钮事件侦听器应具有以下代码

$('.savebtn').on('click', function() {
  var mapObj = {};
  $('.listable .cb').each(function(index, item) {
    var selectVal = $(this).find('select').val();

    if (mapObj[selectVal]) {
      mapObj[selectVal] += Number($(this).find('#amt1_' + index).val());
    } else {
      mapObj[selectVal] = Number($(this).find('#amt1_' + index).val());
    }

  });

  console.log(mapObj);
});
var i=0;
$('.addRow')。在('click',function()上{
addRow();
});
函数addRow(){
var tr='';
tr+='';
tr+='tanlim';
tr+='';
tr+='';
tr+='';
i++;
$('tbody')。追加(tr);
}
$('tbody')。在('click','remove',函数()上{
$(this.parent().parent().remove();
});
$('.savebtn')。在('click',function()上{
var mapObj={};
$('.listable.cb')。每个(函数(索引,项){
var selectVal=$(this.find('select').val();
if(mapObj[selectVal]){
mapObj[selectVal]+=Number($(this).find('#amt1'+index).val());
}否则{
mapObj[selectVal]=Number($(this).find('#amt1'+index).val());
}
});
console.log(mapObj);
});

名称
数量

保存
您可以使用
主体tr
上的
reduce
提取数据,并以所需的对象格式求和。像这样:

const result=$('tbody tr').get().reduce((prev,ne)=>{
const$this=$(ne);
常量类型=$this.find('select').val();
prev[type]+=parseInt($this.find('input').val())
返回上一个;
}, {
林:0,,
谭:0
});
var i=0;
$('.addRow')。在('click',function()上{
addRow();
/*             
$('.select2')。选择2({
主题:“bootstrap4”,
阿贾克斯:{
url:“{route(“getMember”)}}”,
数据类型:“json”,
},
}); */
});
函数addRow(){
i++;
var tr='';
tr+='';
tr+='tanlim';
tr+='';
/*tr+='';
tr+='tanlim';
tr+=''*/
tr+='';
tr+='';
$('tbody')。追加(tr);
}
$('tbody')。在('click','remove',函数()上{
$(this.parent().parent().remove();
});
$('button')。在('click',()=>{
const result=$('tbody tr').get().reduce((prev,ne)=>{
const$this=$(ne);
常量类型=$this.find('select').val();
prev[type]+=parseInt($this.find('input').val())
返回上一个;
}, {
林:0,,
谭:0
});
console.log(结果)
})

名称
数量
第二个名字
第二金额
拯救

您的代码不应位于链接后面。使用编辑器中的相应按钮在问题中创建可运行的代码段。