Jquery 在'ul'中洗牌'li'元素`

Jquery 在'ul'中洗牌'li'元素`,jquery,Jquery,我想在ul中洗牌li元素,我找到了。我只是不明白它是如何“就地”替换元素,而不是将它们添加到现有阵列的末尾 var list = $('ul'); var count = $('ul li').length; for (var i = 1; i < count; i++) { var j = Math.floor(Math.random() * count); $('li', list).eq(j).appendTo(list); } var list=$('ul'); 变量计数

我想在
ul
中洗牌
li
元素,我找到了。我只是不明白它是如何“就地”替换元素,而不是将它们添加到现有阵列的末尾

var list = $('ul');
var count = $('ul li').length;
for (var i = 1; i < count; i++) {
  var j = Math.floor(Math.random() * count);
  $('li', list).eq(j).appendTo(list);
}
var list=$('ul');
变量计数=$('ul li')。长度;
对于(变量i=1;i
我在文档中忽略了
.eq()
.appendTo()
的哪些行为使得这成为可能?谢谢

.eq(j)
从选择中选择
j
元素,
appendTo
将其移动到
列表
元素的末尾(作为最后一个子元素重新追加)。从jQuery文档中:“如果以这种方式选择的元素插入到DOM中的其他位置,它将被移动到目标中(未克隆)并返回由插入元素组成的新集合“