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