大量input提交,并且每个input的name都不一样且name名称都是唯一值,那么我要如何才能从这多个input当中获取到我需要的值。

问题遇到的现象和发生背景

img


这个网页当中有大量的input,并且input会在后面的开发当中会越来越多,每个input的name都不一样并且name名称都是唯一值,那么我要如何才能从这多个input当中获取到我需要的值。

我想要达到的结果

从这多个input当中获取到我需要的值。

name名称都是唯一值,那你根据你的参数用字符串拼接出name名称就好了

你题目的解答代码如下:

var arr = [
    {name:"module[0][0][name]",value:"11"},
    {name:"module[0][0][type]",value:"aa"},
    {name:"module[0][1][name]",value:"22"},
    {name:"module[0][1][type]",value:"bb"},
    {name:"module[0][2][name]",value:"33"},
    {name:"module[0][2][type]",value:"cc"}
];
var x=0, y=1, key="type";
var str = `module[${x}][${y}][${key}]`;
var value = arr.filter(x=>x.name==str)[0].value;
console.log(value);

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

那就看看有没有办法让你要获取的值有标签可以筛选,想办法在查找前可以过滤掉一定量的name,或者改成使用有顺序的id形式,然后获取的时候就可以二分查找了

没有 id 或者唯一标识 那不太好,筛选 。你可以自己 循环 加上一个 id。id要是唯一值

name是唯一的,但是你不知道到底哪个name对应哪个控件,对你来说它们就是一大堆随机字符串,所以唯一不唯一根本不重要,你不要再老强调它是唯一的,那对你没有任何用处

document.querySelector("input[name='module[0][0][name]']").value;