jQuery - clone() 不是一个函数



我正在尝试从这个块中复制我的一些元素并将它们粘贴到最后:

<div class="brands">
<img src="brand1.png" alt="1" />
<img src="brand2.png" alt="2" />
<img src="brand3.png" alt="3" />
</div>

这就是我正在做的:

for (var i = 0; i < 2; i++) {           
$('.brands img')[i].clone().appendTo('.brands');            
}

但是后来我在控制台中看到了这一点:TypeError: $(...)[i].clone is not a function,jQuery是未包含的。我的代码有什么问题?

你不需要循环。 https://api.jquery.com/slice/

$('.brands img').slice(0, 2).clone().appendTo('.brands');

您遇到的问题是,一旦您使用[index].get(index)$()函数中提取本机元素,就会失去jQuery对象方法的可链性。

当您使用

$("selector")[n]

你得到的是 DOM 节点,而不是一个 jquery 对象(它没有 .clone(((它是 cloneNode(((

而是使用

$("selector").eq(n)

更新的代码:

for (var i = 0; i < 2; i++) {           
$('.brands img').eq(i).clone().appendTo('.brands');            
}

对于所有 img 元素,clone(( 和appendTo('.brands'(都可以工作。

$('.brands img').clone().appendTo('.brands');

最新更新