javascript - 通过输入数组字段在控制台中出现未定义的结果

标签 javascript html

为什么当我按下“提交”按钮时,所有按钮都未定义?

我想通过使用这样的输入字段来创建一个数组。

还有其他方法可以做到这一点吗?

我尝试使用类名来执行此操作,但结果仍然未定义

function clicked() {
    var input_value = document.querySelectorAll('#data, #data1, #data2, #data3, #data4').value;
    console.log(input_value)
}

document.getElementById('btn').addEventListener('click', clicked);
<input id="data">
<input id="data1">
<input id="data2">
<input id="data3">
<input id="data4">
<button id="btn">Click me</button>

最佳答案

querySelectorAll 将返回一个“NodeList”,它类似于一个数组。 NodeList 没有 value 属性,因此它返回未定义。

如果您想从每个输入框中获取值,则需要循环遍历 NodeList 并分别从每个 HTML 元素中提取

function clicked() {
    var nodeList = document.querySelectorAll('#data, #data1, #data2, #data3, #data4');
    for (var i = 0; i < nodeList.length; i++) {
      console.log(nodeList[i].value);
    }
}

document.getElementById('btn').addEventListener('click', clicked);

关于javascript - 通过输入数组字段在控制台中出现未定义的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47042773/

相关文章:

javascript - 简单的 jQuery 片段有问题

css - 下部 div 与上部 div 重叠

javascript - 棘手的 CSS 与网格/仪表板布局接壤

html - 如何在html bootstrap 4中使col-md-3在右侧对齐

html - Bootstrap/HTML - 说明

html - 如何居中这个翻转卡片示例?

javascript - 将图标分配给 Sigma.js 中的节点

javascript - 单击时的CSS翻转动画

javascript - jquery同时隐藏/显示效果

javascript - Chart.JS - 在点之上显示值