jquery - 使用jquery在一个循环中组合两个表单值
问题描述
大家好,我有一个棘手的问题。
我有这种形式,当我循环位于表头中的所有表单字段时,我希望它们组合成一个数组。
这是我用来获取所有字段数据的循环
$('#filterTable').find("table select, table input").each(function(key, value) {
var name = $(this).attr('name');
var input = {};
if (this.value !== ''){
if (name === 'filter_select') {
input.col = $(this).data('col');
input.layer_id = $(this).data('layer');
input.filterSelect = $(this).val();
} else if (name === 'froms'){
input.col = $(this).data('col');
input.layer_id = $(this).data('layer');
input.from = $(this).val();
} else if (name === 'to'){
input.col = $(this).data('col');
input.layer_id = $(this).data('layer');
input.to = $(this).val();
}
if(layerId == "" && input)
layerId = input.layer_id;
filterForm.push(input);
previous_col = $(this).data('col');
}
});
此代码为我提供以下输出
0:
col: 2
layer_id: 139
from: "100"
1:
col: 2
layer_id: 139
to: "500"
我想要完成的是组合它们,因为它们具有相同的 col 或者它们位于同一个表头中,所以输出看起来像这样
0:
col: 2
layer_id: 139
from: "100"
to: "500"
知道如何解决这个问题吗?被困在这里这么久了。谢谢
解决方案
您可以使用$.extend
任意属性组合多个对象。
示例代码(没有 html 输入,您可以将其放入“迭代”部分)
var filterForm = [];
// previous iterations of the input loop popuplate filterForm array
filterForm.push({
col: 2,
layer_id: 139,
from: "100"
});
// this iteration gets data from inputs (hardcoded here for simplicity/demo)
var input = {
col: 2,
layer_id: 139,
to: "500"
};
// find if it's already in the array
var existing = filterForm.find(function(e) {
return e.col == input.col && e.layer_id == input.layer_id;
});
// update existing item or add as a new item
if (existing != null)
$.extend(existing, input);
else
filterForm.push(input);
console.log(filterForm);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
推荐阅读
- machine-learning - 考虑三个相互独立的分类器 A、B、C,它们的错误概率相等:
- r - 如何在 R 中使用多个列/行名称并获取该交集的值?
- php - 如何从 wordpress 中的 woocommerce 订单中的附加信息中获取文件?
- grep - 仅在“:”之前进行 Grep 匹配
- facebook - 来自 Facebook 的空 video_insight 响应
- sql - 根据另一个表/列的值显示不同的表值
- alfresco - Alfresco 服务器启动被挂起
- python - 我需要知道文件中序列化列表的数量。请帮帮我
- teradata - teradata 中宏或过程的替代方案
- css - 照片网格未正确换行 - Wordpress 主题正在使用引导程序