我正在尝试从这个块中复制我的一些元素并将它们粘贴到最后:
<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');