2015-10-22 83 views
1

我有一個<div>我克隆(重複),我也設置它在循環被複制,直到一個特定的限制。Javascript克隆和循環問題

循環不起作用,我的循環有任何問題?

這裏是我的JSFiddle

+0

http://jsfiddle.net/3L05as1n/2/ – Omidam81

+0

它的工作原理,但你檢查多少次克隆?我已將它設置爲克隆3次 – Vinayak

+0

是的,我現在檢查它。你沒有把我重置爲0之前或之後 – Omidam81

回答

1

你必須把var clone = original.cloneNode(true);while循環中。

這是結果:

document.getElementById('button').onclick = duplicate; 
 
var i = 0; 
 
var counter4 = 3; 
 
var original = document.getElementById('duplicate'); 
 

 
function duplicate() { 
 
    while (i < counter4){ 
 
     var clone = original.cloneNode(true); // "deep" clone 
 
     console.log(clone) 
 
     clone.id = "duplicate"; // there can only be one element with an ID 
 
     original.parentNode.appendChild(clone); 
 
     i++; 
 
    } \t  \t 
 
}
#duplicate{ 
 
    width: 100px; 
 
    height: 50px; 
 
    margin-bottom: 10px; 
 
    background-color: red; 
 
}
<input type="button" id="button" value="Button"> 
 
    <div id="duplicate"> 
 
    </div>

+0

是的,我也試過這個,但我想一個一個購物並不都在一個時間。 – Vinayak

+0

你是什麼意思「一個接一個」?如果每次迭代時都不創建克隆,則只有一個克隆項。這就是克隆只顯示一次的原因。 –

0

你離開var clone = original.cloneNode(true); while循環,這意味着它只能被您每次按下按鈕時,一旦克隆之外。如果您希望將其克隆三次,則需要將該語句移到while循環中。

http://jsfiddle.net/3L05as1n/9/

此外,你可以使用一個循環做到這一點,而不是:http://jsfiddle.net/3L05as1n/10/