for 循环中的 getElementById() 以检索输入值

getElementById() in for loop to retrieve input values

for 循环中,我使用 getElementById() 检索 javascript 中的几个输入值。

首先,我制作了一堆输入框并使用 for 循环设置不同的 id's。 现在我正在使用第二个 for 循环来引用那些 id's 并检索它们的输入值。

代码:

for (i=0;i<products.length;i++){
    var display;
    display ="<input type='number' id="+products[i][0]+" onchange=myFunction()>";
    document.write(display);
}


document.write("<p id=demo></p>");

function myFunction() {
    var totalVeg=0;

    for (j=0;j<products.length;j++){
        amount = document.getElementById(products[j][0]).value;
        totalVeg += amount;
    }
    document.getElementById("demo").innerHTML = "You selected: " + totalVeg;

}
</script>

具体来说,我在这部分遇到了问题:

amount = document.getElementById(products[j][0]).value;

如果我引用特定的输入,例如 products[0][0],就会找到该值。只有当我尝试使用 "j" 变量引用 id 时,代码才会停止工作。

我已经阅读了此处的其他一些问题和答案,但 none 正是我想要的。

谢谢!

你好像没有在 id 周围加上引号,然后 id 没有正确定义试试这个方法

for (i=0;i<products.length;i++){
  var display;
  display ="<input type='number' id='"+products[i][0]+"'   onchange=myFunction()>";
  document.write(display);
}
      <script type="text/javascript">
       var products = ["Saab","Volvo","BMW"];
       for (i=0;i<3;i++)
        {
        var display;
        display ="<input type='number' id='"+products[i]+"'onchange=myFunction(this.id)>";
document.write(display);
         }


        document.write("<p id=demo></p>");
          var totalVeg=0;
          function myFunction(_this) {
          amount = parseInt(document.getElementById(_this).value);
          totalVeg += amount;
          document.getElementById("demo").innerHTML = "You selected: " + totalVeg;
         }
      </script>

大家可以参考一下。希望对你有帮助。