克隆不计入长度

时间:2016-01-12 08:06:44

标签: javascript jquery

我遇到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?

2 个答案:

答案 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/