Javascript 如何在js中获取多个选择列表数据?

Javascript 如何在js中获取多个选择列表数据?,javascript,Javascript,请给出您有价值的建议您必须在下面选择 function checkForm(frm){ var inps = document.getElementsByName('user[]'); console.log(inps );// but its displaying blank nodelist } 你必须在下面选择 function checkForm(frm){ var inps = document.getElementsByName('user[]'); console

请给出您有价值的建议

您必须在下面选择

function checkForm(frm){
  var inps = document.getElementsByName('user[]');
  console.log(inps );// but its displaying blank nodelist
}

你必须在下面选择

function checkForm(frm){
  var inps = document.getElementsByName('user[]');
  console.log(inps );// but its displaying blank nodelist
}

您可以使用
document.querySelectorAll()
和名称属性的通配符:

function checkForm(frm){
  var inps1 = document.getElementsByName('user[11]');
  console.log(inps1 );
  var inps2 = document.getElementsByName('user[12]');
  console.log(inps2 );
}
这意味着,查找具有以
user[
开头的
name
属性的所有元素

如果要从name属性获取键,请将其映射为:

[name^="user["]
let userArray=Array.from(document.querySelectorAll('[name^=“user[”]);
让userArrayKeys=userArray.map(element=>Number(element.name.match(/\d+/)[0]);
log(“匹配元素”,userArray);
log(“他们的密钥”,userArrayKeys);

一
二
一
二
一
二

您可以使用
document.querySelectorAll()
和名称属性的通配符:

function checkForm(frm){
  var inps1 = document.getElementsByName('user[11]');
  console.log(inps1 );
  var inps2 = document.getElementsByName('user[12]');
  console.log(inps2 );
}
这意味着,查找具有以
user[
开头的
name
属性的所有元素

如果要从name属性获取键,请将其映射为:

[name^="user["]
let userArray=Array.from(document.querySelectorAll('[name^=“user[”]);
让userArrayKeys=userArray.map(element=>Number(element.name.match(/\d+/)[0]);
log(“匹配元素”,userArray);
log(“他们的密钥”,userArrayKeys);

一
二
一
二
一
二

这是一个奇怪的标记命名(我不建议在属性值中使用
[
]
),您可以使用它来解决这个问题,它允许您使用CSS选择器选择元素

我用过

userArray.map(element => Number(element.name.match(/\d+/)[0]));
^=
是的一部分。
[name^=“user[”]
表示“选择名称属性以“user[””开头的位置”。这将选择包含
user[1]
的元素,但也包括
user[2]
user[2][1]
users[hello]
users[hello
的元素

console.log(document.querySelectorAll('select[name^=“user[”]);

1
2
1
2

这是一个奇怪的标记命名(我不建议在属性值中使用
[
]
),您可以使用它来解决这个问题,它允许您使用CSS选择器选择元素

我用过

userArray.map(element => Number(element.name.match(/\d+/)[0]));
^=
是的一部分。
[name^=“user[”]
表示“选择名称属性以“user[””开头的位置”。这将选择包含
user[1]
的元素,但也包括
user[2]
user[2][1]
users[hello]
users[hello
的元素

console.log(document.querySelectorAll('select[name^=“user[”]);

1
2
1
2

除非需要
用户
索引,否则可以跳过它们,如:

document.querySelectorAll('select[name^="user["]')

除非需要
用户
索引,否则可以跳过它们,如:

document.querySelectorAll('select[name^="user["]')

可以看一看:可以看一看:谢谢Luca通过这一点我可以检查值您可以建议一种获取键的方法吗。@Luca为什么我们不使用getElementsByName()@BharatDangar,因为据我所知,getElementsByName既不支持子字符串匹配,也不支持获取具有类似名称constructYes的数组的元素的本机方法。谢谢你回复我的评论。谢谢Luca,我可以检查值。你能建议一种获取键的方法吗?@Luca为什么我们不使用getElementsByName()@Bharatangar,因为据我所知,getElementsByName既不支持子字符串匹配,也不支持获取具有类似名称Constructor的数组元素的本机方法。是的,我知道了。感谢回复我的评论。