2012-05-09 55 views
4
var random1 = Math.floor((Math.random()*elems.length)); 
var random2 = Math.floor((Math.random()*elems.length)); 

while (random1 == random2) { 
    var random2 = Math.floor((Math.random()*elems.length)); 
} 

$j('#project-scroller').append(elems); 
$j('#project-scroller').append(elems[random1]); 
$j('#project-scroller').append(elems[random2]); 

所以發生了什麼:elems被追加,但榆樹[random1]和elems [random2]沒有。jQuery append不會調用兩次?

於是我嘗試這樣做,而不是:

$j('#project-scroller').append(elems); 
$j('#project-scroller').append(elems); 

而且elems的只附加一次,那個時候呢!所以然後我嘗試了這個:

$j('#project-scroller').append(elems[random1]); 
$j('#project-scroller').append(elems[random2]); 

而且兩個隨機元素都被追加了。然後我嘗試追加random1兩次,它只被追加一次...

我錯過了什麼?爲什麼jQuery不會多次添加相同的元素?嘗試與appendTo(僅用於踢)相同的事情,並且它做同樣的事情。


感謝您的回答!以下是我最終得到的結果:

var random1 = Math.floor((Math.random()*elems.length)); 
var random2 = Math.floor((Math.random()*elems.length)); 
while (random1 == random2) { 
    var random2 = Math.floor((Math.random()*elems.length)); 
} 
newElem1 = $j(elems[random1]).clone(); 
newElem2 = $j(elems[random2]).clone(); 
$j('#project-scroller').append(elems).append(newElem1).append(newElem2); 
+1

'elem'的價值是什麼? –

回答

8

它不附加elems的副本,它附加了真實的東西。使用clone()創建要附加的第二個副本。

+0

謝謝 - 這個工作。 –