我需要一个 text box
的值,因为我正在使用 document.getElementsByName("elemntName")
但问题是 name
本身是动态的,如下所示。
for(temp = 0 ; temp < arracid.length ; temp++){
cell1=mynewrow.insertCell(4);
cell1.innerHTML="<input type='hidden' name='ACID"+index+"' class='tblrows' id='ACID"+index+"' value='"+arracid[temp]+"'>";
index++;
}
当我尝试 var acidCount = document.getElementsByName('ACID')
它不起作用,我尝试了
var acidCount = document.getElementsByName('ACID"+index+"')
仍然无效
对于每个循环,名称都在变化,如 ACID1
、ACID2
等。任何人都可以帮助我如何获取此文本的 value
盒子?
最佳答案
由于您已经为输入分配了一个 ID,因此建议使用 getElementsById
,它比 getElementsByName
更快(并且更准确,因为 ID 应该是唯一的,而名称不一定是)。试试这个:
var acidCount = document.getElementById("ACID" + index);
如果您仍想使用 getElementsByName
,请尝试以下操作:
var acidCount = document.getElementsByName("ACID" + index);
但请记住,getElementsByName
返回一个元素列表,但该列表只有一个元素,因为您的名字是唯一的。如果你想在列表中获取该元素,你可以像这样使用它的索引:
var acidCount = document.getElementsByName("ACID" + index)[0];
或者,如果您想获取所有输入的列表,请先从名称中删除索引:
cell1.innerHTML="<input type='hidden' name='ACID' class='tblrows' id='ACID"+index+"' value='"+arracid[temp]+"'>";
然后使用:
var acidCount = document.getElementsByName("ACID");
注意:以上所有返回 DOM 元素。如果您只对值感兴趣,请使用 value
属性:
var acidCount = document.getElementById("ACID" + index).value;
或
var acidCount = document.getElementsByName("ACID" + index)[0].value;
关于javascript - 如何按动态名称从文本框中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44645341/