javascript - 我尝试将类似数组的元素集合分配给变量,我的代码有什么问题?

标签 javascript arrays variables foreach

我尝试在 inputs 上运行 forEach 循环并将每个元素分配给一些变量,但有些东西无法正常工作。

不确定为什么我的变量一直“未定义”

js 文件:

var inputs = document.querySelectorAll("input[type=text]");

inputs.forEach(function(item, index, array){

    var inputName, inputLastName, inputAge;

    if(array[index].name === "name"){
        inputName = array[index];
    }
    if(array[index].name === "lastName"){
        inputLastName = array[index];
    }
    if(array[index].name === "age"){
        inputAge = array[index];
    }
});

html 文件:

<form action="">
    <label for="name"> Name:
        <input type="text" name="name">
    </label>

    <label for="lastName"> Last Name:
        <input type="text" name="lastName">
    </label>

    <label for="age"> Age:
        <input type="text" name="age">
    </label>
</form>

最佳答案

您的实际代码运行良好,期望您将 inputName、inputLastName、inputAge 变量设置为 foreach 循环的局部变量,以便在循环之外无法访问它们.

您需要在循环外声明它们。这是一个工作片段:

var inputs = document.querySelectorAll("input[type=text]");

var inputName, inputLastName, inputAge;

inputs.forEach(function(item, index, array) {


  if (item.name === "name") {
    inputName = array[index];
  }
  if (item.name === "lastName") {
    inputLastName = array[index];
  }
  if (item.name === "age") {
    inputAge = array[index];
  }
});

console.log(inputName);
<label for="name">Name:
  <input type="text" name="name">
</label>

<label for="lastName">Last Name:
  <input type="text" name="lastName">
</label>

<label for="age">Age:
  <input type="text" name="age">
</label>

您也可以使用item.name代替array[index].name来获取当前迭代的元素。

关于javascript - 我尝试将类似数组的元素集合分配给变量,我的代码有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39836145/

相关文章:

c++ - 使用 if(char == '\n' ) 重置变量 C++

java - 变量不会增加,从静态方法调用非静态方法

Javascript重定向和提取根域名进行重定向

javascript - 如何判断 DOM 元素在当前视口(viewport)中是否可见?

javascript - canvas drawImage 第一次不绘制图像

java - 按降序对整数数组进行排序并将其与相应的字符串数组相关联

Java : Sort integer array without using Arrays. 排序()

java - 制作打印数组的方法(java新手)

ruby - 在 Ruby 中,堆栈中存储了什么?

javascript - 如何使用 onchange 传递多个字段