javascript - For 循环不起作用

标签 javascript

我希望此函数将从表单输入的两个值相加,但不是相加而是合并数字。如果我输入 2 和 2,它会变成 22,而我想要输出 4。我认为 for 循环不起作用

<script>
var calculate = function(){
var input = document.getElementsByTagName("input");
var length = input.length;
for (var i = 0; i < length; i++) {
  input[i] = input[i].value;
  input[i] = parseInt(input[i]);
}
var total_living_room = input[0] + input[1];
document.getElementById("sh").innerHTML=total_living_room;
}
</script>

最佳答案

问题是,getElementsByTagName() 返回一个 NodeList 而没有数组(参见,例如 MDN on this)。

两者在很多方面的行为相似,但是 NodeList 的元素不能按照您的方式进行更改。

作为解决方案,在第二个数组中解析您的值并使用它:

<script>
var calculate = function(){
  var input = document.getElementsByTagName("input"),
      length = input.length,
      inputVals = [];
  for (var i = 0; i < length; i++) {
    inputVals.push( parseInt( input[i].value, 10 ) );
  }
  var total_living_room = inputVals[0] + inputVals[1];
  document.getElementById("sh").innerHTML=total_living_room;
}
</script>

编辑

Example Fiddle

关于javascript - For 循环不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16080174/

相关文章:

javascript - 使用 window.location 在 URL 中添加 #hashtag

javascript - winston 在文本中保存颜色格式化程序,如何删除它但仍然显示颜色?

javascript - 当从按钮触发打印时,React 组件会丢失与 className 相关的格式,但在内联完成后会保留它

javascript - 对象没有方法loginWithPassword Meteorjs mocha 测试

javascript - "dispatch"未捕获类型错误 React-Redux

javascript - 为什么 Google Maps API 不能在服务器上运行? [错误 : The Geolocation service failed]

php - 解析自然语言

javascript - 在捏合时运行 js;在捏出时运行不同的 js

javascript - jQuery 中的嵌套 2D 表,将 TD 附加到 TR

javascript - 更改标题仅节省几秒钟(直到页面停止加载)