2017-03-08 78 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(''); 
    }