javascript - 如何修复输入向后返回的问题

标签 javascript while-loop

由于某种原因,当输入输入时,它会反向返回。我可以使用 for 循环让它工作,但是如何使用 while 循环来做到这一点?

 var input = document.getElementById('userinput').value;
 var i  = input.length;
 while (i--) {

    document.getElementById('message').innerHTML += input[i] + "<br/>";

  }

最佳答案

反转循环计数器和条件:

var input = document.getElementById('userinput').value;
var i = 0;
while (i < input.length) {
  document.getElementById('message').innerHTML += input[i] + "<br/>";
}

或者反转循环内的串联顺序:

var input = document.getElementById('userinput').value;
var i  = input.length;
while (i--) {
  document.getElementById('message').innerHTML =
          input[i] + "<br/>" + document.getElementById('message').innerHTML;
}

请注意,无论哪种方式,您都不应该在循环中更新 .innerHTML:作为一般原则,尽量减少 DOM 更新,因此使用临时变量来构建所需的字符串,然后分配 .innerHTML 一次循环之后。或者对于您实际上在这里所做的事情,您不需要循环:

var input = document.getElementById('userinput').value;
document.getElementById('message').innerHTML = input.split("").join("<br>");

关于javascript - 如何修复输入向后返回的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43509592/

相关文章:

c - 如何防止系统在看门狗定时器任务启动前挂起

java - 如何将用户输入的数字(学生 ID)拆分为公式

java - 在 "while expected"循环中出现 "do...while"错误

javascript - 始终从给定坐标加载起点(DIV 位置)

javascript - dijit.by 未准备好加载主体? dijit 何时可用?

javascript - HTML5 游戏引擎 - JavaScript 动画

JavaScript/HTML/CSS 半色调线条效果

c - while 循环中 printf() 的奇怪行为

javascript - 如何在使用 AJAX 时使用 header ?

c++ - while循环,好像什么都没做?