4

当我命名控件时,我经常使用这种表示法,以便在 POST 或 GET 中获取数组。

<input name="color[1]" type="text" />
<input name="color[2]" type="text" />
<input name="color[3]" type="text" />

所以在我的脚本中我可以做到

<?php $data=$_GET["color"]; 
for each ($color as $key=>$value) {
   doSomething();
} ?>

经常发生我需要在javascript中取回那些id,但我无法得到它们,所以我经常像这样为html中的每个元素添加一个ID

<input name="color[3]" id="color_3" type="text" />

这样我就可以使用 document.getElementsById('color_3')

相反,我想找到使用 document.getElementsByName(color[3])... 的方法...但我无法真正让它工作。

有什么帮助吗?

4

2 回答 2

11

如果您想要所有颜色输入,您可以使用querySelectorAll来查询 name 属性:

document.querySelectorAll("input[name^='color[']")

这将在文档中查找input名称属性以 . 开头的所有标签color[是一个小提琴。

如果你只想要color[3],你可以使用:

var color3 = document.getElementsByName("color[3]");
console.log(color3[0]);
于 2013-08-06T08:12:58.663 回答
4
<input name="color[3]" id="color_3" type="text" />

var element = document.getElementsByName("color[3]");

alert(element[0].id);

它工作得很好..你应该想到的是返回类型是一个元素数组而不是单个元素

于 2013-08-06T08:14:37.017 回答