重复向div元素

时间:2017-03-08 20:16:25

标签: javascript html

使用Javascript,我想反复将相同的文本一遍又一遍地添加到同一个div元素中。

<script>
    while(true) {
        var itstimeto = document.getElementById("duel");   
        var d = "D-";
        itstimeto.innerHTML = itstimeto + d;
        itstimeto = document.getElementById("duel");
    }
</script>
<div id="duel">IT'S TIME TO </div>

然而,div只停留在“IT'S TIME TO”文本中,没有任何内容添加到文本中。

我唯一的解释是反复重复定义变量。

感谢任何帮助!

6 个答案:

答案 0 :(得分:0)

itstimeto.innerHTML = itstimeto + d;

可能应该是

itstimeto.innerHTML = itstimeto.innerHTML + d;

答案 1 :(得分:0)

首先删除无限循环。 第二次使用代码

while() {
        var itstimeto = document.getElementById("duel");   
        var d = "D-";
        itstimeto.innerHTML = itstimeto.innerHTML + d;

    }

答案 2 :(得分:0)

正如@clarmond在评论中所说,你想要itstimeto.innerHTML = itstimeto.innerHTML + d;获取内部文本并附加更多文本。

此外,我没有看到使用将变量映射到同一元素。

这是您需要的脚本。只是一个公平的警告,当你运行它时,你的代码可能会导致你的严重麻烦

while(true) {
    var itstimeto = document.getElementById("duel");   
    var d = "D-";
    itstimeto.innerHTML = itstimeto.innerHTML + d;
}

答案 3 :(得分:0)

1。)itstimeto.innerHTML = itstimeto + d更改为itstimeto.innerHTML = itstimeto.innerHTML + d;

2。)尝试将while (true)更改为setInterval,因为它会冻结整个页面。

所以最终代码可能如下所示:

setInterval(function(){ 
var itstimeto = document.getElementById("duel");   
        var d = "D-";
        itstimeto.innerHTML = itstimeto.innerHTML + d;
}, 0);

答案 4 :(得分:0)

删除以下行:

   var d = "D-";
   itstimeto.innerHTML = itstimeto + d;
   itstimeto = document.getElementById("duel");

更改为:

 var d = document.createTextNode('D-');
itstimeto.append(d);

这些是vanilla JS方法,不解释。有关更多详细信息,请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript

答案 5 :(得分:0)

尝试使用+ =来连接字符串。 https://plnkr.co/edit/RPUmE7?p=preview

<button onclick="run()">RUN</button>
  <div id="msg">Hello world!</div>    
// Code goes here

    function run() {
      var finalMessage = [] ;
      var msg = document.getElementById("msg").innerHTML;
      for (var i = 0; i < 20; i++) {
          finalMessage.push(msg + " D- <br>");
      }
      document.getElementById("msg").innerHTML = finalMessage.join('');
    }