我遇到clone()
的问题。
<div id="container">
<p id="template">a</p>
</div>
<script>
$(document).ready(function() {
$('#template').clone(true, true).appendTo('#container');
console.log($('#container').length); // it return 1, it supposed to return 2 right?, original and the cloned one.
});
</script>
克隆后容器的长度是1,为什么不是2?
我检查过:
console.log($('#container').eq(1));
返回undefined。
克隆的元素是否应该成为索引编号1?
答案 0 :(得分:3)
因为你在计算元素#container
的数量,你应该计算的是容器内元素的数量。
在jquery
中追加意味着将元素放入#container
。
计算容器的儿童
console.log($('#container').children(".watever-class").length);
答案 1 :(得分:1)
$('#container')
正在查看名为container的div。由于您只查看一个div,因此$('#container')
的长度为1。
如果您只想计算容器内部段落元素的数量,可以使用:
console.log($('#container p').length);
如果要计算元素的数量(不仅仅是段落),可以使用children()函数:
console.log($('#container').children().length);
这是一个JSFiddle,它显示了不同的选项,并有解释三行代码的注释:https://jsfiddle.net/0uzusuwz/