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

getElementById() in for loop to retrieve input values

本文关键字:检索 输入 循环 getElementById for      更新时间:2023-09-26

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时,代码才会停止工作。

我已经通读了这里的一些其他问题和答案,但没有一个是我想要的。

谢谢!

      <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>

你可以把它作为参考。希望能有所帮助。

您似乎没有在id周围加引号,如果没有正确定义id,请尝试这种方式

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