2017-03-08 82 views
1

使用Javascript,我想反复将相同的文本反复添加到同一个div元素。反复向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”,没有任何内容被添加到文本中。

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

任何帮助表示赞赏!

+5

无限循环多? – j08691

+1

也许试试'itstimeto.innerHTML = itstimeto.innerHTML + d;' – clarmond

+0

很难用代码片段来展示它。 ;)*注意:你试图做的是毫无意义的,页面永远不会以这种方式加载,至少尝试使用setInterval,这样你就可以真正看到发生了什么。* – Eric

回答

0

itstimeto.innerHTML = itstimeto + d;

可能应该是

itstimeto.innerHTML = itstimeto.innerHTML + d;

0

首先删除无限循环。下面的代码

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

    } 
0

二使用作为@clarmond在他的评论说,你想获取内部文本和附加文本进一步做itstimeto.innerHTML = itstimeto.innerHTML + d;

另外我没有看到使用映射变量到相同的元素。

这里是你需要的脚本。只是,当你运行你的代码可能会导致你严重的麻烦,由于无限循环一个公平的警告你正在运行

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

1)变化itstimeto.innerHTML = itstimeto + ditstimeto.innerHTML = itstimeto.innerHTML + d;

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

所以最终的代码可以是这样的:

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

删除这些行:

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

更改为:

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

这些都是香草JS方法,不打算解释。参考https://developer.mozilla.org/en-US/docs/Web/JavaScript了解更多详情。

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(''); 
    }