Answers:
$("#foo > div").length
ID为'foo'的元素的直接子元素为div。然后检索包装好的包装的尺寸。
$('#table > th').size()
。
我建议使用$('#foo').children().size()
以获得更好的性能。
我创建了一个jsperf测试,以观察速度差异,该children()
方法在Chrome(canary build v15)中击败子选择器(#foo> div)的方法至少达到60%,而在Firefox(v4)中则达到20-30%。
顺便说一句,这两种方法产生的结果相同(在本例中为1000)。
[更新]我已经更新了测试,包括了size()vs长度测试,它们并没有太大的差异(结果:length
使用情况比的速度稍快(2%)size()
)
[更新]由于在OP中看到了错误的标记(在我进行“标记验证”更新之前),两者$("#foo > div").length
&$('#foo').children().length
导致相同(jsfiddle)。但是为了获得仅“ div”儿童的正确答案,应该使用儿童选择器以获得正确和更好的性能
.length
实际上是首选方法,因为它没有函数调用的开销。
$('#extraLinks').children().size()
对div中的文本框(称为extraLinks)进行计数,为什么4
当它们只有2时会出现。通常,我将长度乘以2 ...知道为什么吗?谢谢
为了响应使用jsperf的mrCoders回答,为什么不仅使用dom节点?
var $foo = $('#foo');
var count = $foo[0].childElementCount
您可以在此处尝试测试:http : //jsperf.com/jquery-child-ele-size/7
该方法的速度为46,095 op / s,而其他方法的最佳速度为2000 op / s
$("#foo > div").length
jQuery具有.size()函数,该函数将返回元素出现的次数,但是,如jQuery文档中所指定的那样,它速度较慢并且返回与.length属性相同的值,因此最好只使用。长度属性。从这里:http : //www.electrictoolbox.com/get-total-number-matched-elements-jquery/
var n_numTabs = $("#superpics div").size();
要么
var n_numTabs = $("#superpics div").length;
如前所述,两者返回相同的结果。
但是size()函数更多的是jQuery“ PC”。
我的页面有类似的问题。
现在,只需省略>,它就可以正常工作。
尝试此操作以查找div类型的直接子元素
$("#foo > div")[0].children.length