为什么我用Javascript得到错误的div子数?

时间:2017-03-16 08:57:44

标签: javascript jquery html

var count = $("#abc").length;
console.log('Count : ' + count)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div style="display:none;" id="abc"></div>

我得到结果= 1.这是为什么? div没有孩子?如何解决这个问题以获得正确数量的孩子?

4 个答案:

答案 0 :(得分:2)

&#13;
&#13;
var count= $("#abc").children().length;
console.log('Count : '+count)
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div style="display:none;" id="abc">

</div>
&#13;
&#13;
&#13;

您将获得ID为abc的元素的长度 将子项添加到选择器以计算子项

答案 1 :(得分:2)

您直接选择#abc元素,因此长度属性始终为1。如果您想获得元素的子元素数,请使用children().length

&#13;
&#13;
var count = $("#abc").children().length;
console.log('Count:', count);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div style="display:none;" id="abc"></div>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

  

为什么我得到结果= 1,但div没有任何孩子?

因为jQuery对象的.length属性返回该jQuery对象中的元素数。该数字为1,因为您选择了div

  

如何修复它以获得正确数量的孩子?

var count = $("#abc").children().length;

答案 3 :(得分:0)

您必须首先使用children()方法找到元素的子元素,然后使用长度计算子元素的数量。

所以你的表达应该是

var count = $('#abc').children().length;
console.log('Count: '+count);