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的数组元素的本机方法。是的,我知道了。感谢回复我的评论。