如何从多个唯一ID中获取值

时间:2013-11-20 16:50:36

标签: javascript forms

我一直在制作表格,因为我可以通过这个网站制作额外的输入字段和选择字段!这些字段获得唯一ID(3011,3012,3013至最大3019)和(rc1,rc2等) 删除链接。

var i = 2;
var limit = 10;
function createInput () {
     if (i == limit) {
          alert("You have reached the limit of adding " + i + " inputs");
     }
     else

var field_area = document.getElementById('301X')
var div = document.createElement("div");
div.id = 'SA '+i;
var input = document.createElement("input");
div.innerHTML = '301'+i ;
input.id = '301'+i;
input.name = '3011';
input.type = "text"; //Type of field - can be any valid input type like text,file,checkbox etc.
input.value = "";
input.size = '80';
var rcnode = document.getElementById("rc1") // bepaal var van de select menu id relcode
var rcclone = rcnode.cloneNode(true); // bepaal var van de clone van de select
rcclone.id = 'rc'+i; // het nummeren van id clone
div.appendChild(input);
div.appendChild(rcclone);
field_area.appendChild(div);

它工作正常(不会让我感到惊讶,它可能会更好)现在我想要抓住价值观。我通过这个脚本从一个值成功地使用了它:

var x = 1;
function catchInput () {
var said = '301'+x; 
var rcid = 'rc'+x;
var Valsaid = document.getElementById(said).value;
var Valrcid = document.getElementById(rcid).value;
alert (said + ' ' + Valsaid + Valrcid);
}   

但我想抓住他们。我一直在玩数组和for-loop,但我无法理解。任何帮助,指向正确的方向非常感谢。

赫尔曼

1 个答案:

答案 0 :(得分:0)

有几种可能性:

1)使用公共字符串为您的id添加前缀,然后使用jQuery(例如)查找id为以此前缀开头的所有元素:$('[id^=yourPrefix]')

2)如果你想坚持使用POJS,可以通过为它们分配一个公共类来“分组”这些动态生成的元素。然后,您可以使用getElementsByClassName(),但并非在所有浏览器中都可用(实际上只是IE的问题< = 8)

3)如果你想坚持使用POJS但需要扩展的浏览器支持,你可以在你的id前面添加一个公共字符串,然后在你的元素上循环(可能使用getElementsByTagName()来限制集合)并测试是否例如,id字符串以indexOf()的前缀开头(这很可能是jQuery实现此功能的方式)

希望这会有所帮助......