Javascript 如何获取与数组具有相同名称标记的所有输入字段(jQuery)
是否可以获取与数组具有相同名称标记的所有输入字段,并使用方括号中的字符串作为键? 例如:Javascript 如何获取与数组具有相同名称标记的所有输入字段(jQuery),javascript,jquery,arrays,dictionary,Javascript,Jquery,Arrays,Dictionary,是否可以获取与数组具有相同名称标记的所有输入字段,并使用方括号中的字符串作为键? 例如: ' 结果应该是这样的: hidden => "idPub" => 123, "idPri" => 321, "description" => 'test' 我的实际解决方案: var formData = []; $("input[name^='hidden[']").each(function() {
'
结果应该是这样的:
hidden =>
"idPub" => 123,
"idPri" => 321,
"description" => 'test'
我的实际解决方案:
var formData = [];
$("input[name^='hidden[']").each(function()
{
formData[$(this).attr('name').replace('hidden[','').replace(']', '')] = $(this).val();
});
提前感谢。因为您使用的是命名键,
formData
应该是对象,而不是数组
const formData = {};
const elements = Array.from(document.querySelectorAll("input[type=hidden]"));
elements.forEach(el => {
const key = el.getAttribute('name');
var matches = key.match(/\[(.*?)\]/);
if (matches) {
var val = matches[1];
formData[val] = el.value;
}
});
console.log(formData);
var formData = {};
// ^^
此外,选择器仅针对
元素;您还需要为
添加选择器
$("input[name^='hidden['],textarea[name^='hidden[']")
// ^^^^^^^^^^^^^^^^^^^^^^^^^^
var formData={};
$(“输入[name^='hidden['],文本区域[name^='hidden['])。每个(函数(){
formData[$(this.attr('name').replace('hidden[','').replace(']','')]=$(this.val();
});
console.log(formData);
测试
您也可以使用正则表达式来完成此操作
var hidden = {};
$('input,textarea').filter(function(){
return this.name.match(/(hidden)\[(.*?)\]/g);
}).each(function() {
hidden[$(this).attr('name').replace('hidden[', '').replace(']', '')] = $(this).val();
});
console.log(hidden);
请在此处查看:html中123和321在哪里?您可以选择以属性开头的元素,如
input[name^=“hidden”]
选择名称以hidden开头的所有输入。