javascript - 如何按动态名称从文本框中获取值

标签 javascript

我需要一个 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+"') 仍然无效

对于每个循环,名称都在变化,如 ACID1ACID2 等。任何人都可以帮助我如何获取此文本的 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/

相关文章:

javascript - HTMLVideoElement 未捕获的 DOM 异常

javascript - 如何继承pos中的models.js并做一些改动?

javascript - 工具提示在 Safari/iPad 上无法按预期工作

javascript - 关于事件点击问题

javascript - 厄运的碰撞循环

javascript - 在 for 循环中访问动态变量名称

javascript - autoHeight 的 ag grid 最小高度

javascript - 可以跟踪悬停在透明 div 上而不让 div 影响它覆盖的任何元素吗?

javascript - 如何模拟 Jasmine 中其他服务方法中调用的 $http.post 方法?

javascript - 使 HTML Table 高度等于中间 TD 元素高度