jQuery';s.get()偷走了我的元素。好吧,但是为什么呢?

jQuery';s.get()偷走了我的元素。好吧,但是为什么呢?,jquery,dom,methods,Jquery,Dom,Methods,因此,我一直在复习jQuery,并一直在使用.get()方法。我知道您可以使用它将DOM元素放入数组中,如$('p')。get()

因此,我一直在复习jQuery,并一直在使用
.get()
方法。我知道您可以使用它将
DOM
元素放入数组中,如
$('p')。get()console.log($('p').get(0.innerText)。但我也注意到,当我试图获取一些元素,将它们放入数组并输出到其他地方时,它实际上将它们从
DOM
中删除

例如
var input=$('ul#input li').get();
$('ul#output').append(input.reverse())

  • 一排
  • 2排成一列
  • 3排成一列
  • 4排成一列
  • 5排成一列
  • 6排成一列
  • 7排成一列
  • 8排成一列

    这是预期的行为。任何类型的DOM操作(
    .append()
    .prepend()
    .insertAfter()
    ,等等)方法都会接受传递的实例,并将其放置在您定义的位置(不能同时将单个DOM节点放置在两个以上的位置)

    如果您正在寻找期望的行为,请先调用
    .clone()
    ,这样您就可以将一份新的副本放在您想要的地方。这将保留第一个实例(在
    ul#input
    中找到的一个),同时允许您在所需位置放置另一个实例(
    ul#out

    $('ul#out')。追加(
    $('ul#in li').clone().get().reverse()
    );
    
    
    
    • 第一项
    • 第二项
    • 第3项