jQuery追加不会调用两次?

时间:2012-05-09 02:42:28

标签: javascript jquery append

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被追加但是elms [random1]和elems [random2]没有。

然后我尝试了这个:

$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 个答案:

答案 0 :(得分:8)

它没有附加elems的副本,它附加了真实的东西。使用clone()创建要附加的第二个副本。

相关问题