javascript - for 函数在 javascript 中直接结束

标签 javascript html

我刚刚开始编写 html 和 java 脚本,我对下面的代码有一个问题,我不知道为什么它只用 for 设置的最后一个数字来写文本,请帮助我.. .

function func() {
  var a;
  for (var j = 1; j <= 6; j++) {
    a = "text";
    a += j;
    document.getElementById("page").innerHTML = document.getElementById(a).value + " ";
  }
}
<input type="text" id="text1">
<input type="text" id="text2">
<input type="text" id="text3">
<input type="text" id="text4">
<input type="text" id="text5">
<input type="text" id="text6">

<input type="button" id="startbutton" value="tap" onclick="func()">

<br>

<p id="page"> </p>

最佳答案

问题是您没有附加 HTML。您应该使用 += 添加到现有的字符串

此外,每次检索元素并附加 html 时都存在性能问题。最好存储/更新变量中的值,最后设置 innerHTML 的值。

此外,您应该避免创建额外的变量 a 来提取 id。您可以简单地执行如下所示的操作。

function func() {
  
  var html = "";
  for (var j = 1; j <= 6; j++) {
    html += document.getElementById("text" + j).value + " ";
  }
  document.getElementById("page").innerHTML = html;
}
<input type="text" id="text1">
<input type="text" id="text2">
<input type="text" id="text3">
<input type="text" id="text4">
<input type="text" id="text5">
<input type="text" id="text6">

<input type="button" id="startbutton" value="tap" onclick="func()">

<br>

<p id="page"> </p>

关于javascript - for 函数在 javascript 中直接结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51264393/

相关文章:

javascript - 将重复代码注入(inject)函数 : JavaScript

javascript - 如何在不增加尺寸的情况下放大图像?

javascript - Bootstrap JS 未加载

html - 替换 HTML 字符串中的字符 - 标签除外

javascript - Bootstrap .navbar-toggle 事件

css - 使用 HTML/CSS 的分层列表

javascript - 如何循环唯一目标ID? [jQuery]

javascript - Promise 在 forEach 循环完成之前解析

javascript - 有选择地添加和删除相同 CSS 属性的值

javascript - 我可以简化这个 Javascript 循环吗?