2012-05-09 36 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

谢谢 - 这个工作。 –