有没有办法在javascript中的for循环的每次迭代中捕获变量的值?

时间:2013-09-14 23:18:36

标签: javascript html variables loops for-loop

我是学生学习javascript,只有第3周,所以我不熟悉任何高级主题或代码。这是一个分级任务,所以我不是在寻找答案,但任何帮助或建议,这将是伟大的。我被困了好几个小时,我甚至不知道要去哪个方向。

我需要做的是使用for循环来获取用户可以输入到html页面的最多3个不同id标记的值。它必须在for循环中完成,并使用计数器按顺序更改id的名称。

我能够做到这一点,但每次循环运行时它都会抓取数据,当然也会将变量设置为循环的最新迭代。

有没有办法在每个循环中捕获返回的值并存储它以便在循环运行后使用?我应该能够生成3个单独的值,然后将它们一起显示出来。

编辑:这是HTML:

<!DOCTYPE html>                      

<body>
  <h1>Assignment 2</h1>
  <p>
    Enter First Name:
    <input id="firstname" type="text">
    <span id="firstname_error">*</span>
  </p>
  <p>
    Enter Last Name:
    <input id="lastname" type="text">
    <span id="lastname_error">*</span>
  </p>
  <p>
    How Many Pets do you have? (0-3):
    <input id="numpets" maxlength="1" size="1" type="text">
    <span id="numpets_error">*</span>
  </p>
  <p>
    List your Pet's names:
    <input id="pet1" type="text">
    <input id="pet2" type="text">
    <input id="pet3" type="text">
  </p>
  <p>
     <input onclick="processInfo()" type="button" value="Submit Information">
  </p>
  <p id="message">*</p>
</body>
</html>

1 个答案:

答案 0 :(得分:4)

您可以使用单独的变量来累积存储每次迭代的值。确保在循环之前定义此变量,并在每次迭代时数据添加到变量中,而不是覆盖它。

例如,使用string变量:

var str = '';
for (i=0; i < 3; i++) {
    str += i+' '; // Note the usage of the += operator to append the value
}
 //
console.log(str);

或使用array变量:

var arr = [];
for (i=0; i < 3; i++) {
    for (i=0; i < 3; i++) {
    arr.push(i);
}
 //
console.log(arr.toString());

请注意,为了示例,我们只是存储循环计数器的值i