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 被附加但 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 );
4

1 回答 1

8

它不是附加副本elems,而是附加真实的东西。用于clone()创建要附加的第二个副本。

于 2012-05-09T02:45:08.283 回答