我在jquery所有选择器中遇到问题。
我的div中有三个元素,但是当我使用下面的代码行来基本上给出我div格式中元素的总长度,虽然我的div包含三个元素,但是它提示0为什么?
jquery代码:
var element_count = $('#mydiv').find('*').length;
alert(element_count);
HTML代码:
<div id="mydiv">
<p>Hi</p>
<span>Hello</span>
<h1>hey</h1>
</div>
答案 0 :(得分:3)
此代码无法正常工作的原因是它在执行代码时未执行或DOM未就绪。确保已将代码包装在DOM中:
$(document).ready(function(){
alert($('#mydiv').find('*').length);
});
<强> Demo 强>
答案 1 :(得分:1)
在document.ready中包含你的代码,以确保DOM准备就绪,然后尝试下面的代码。
$(document).ready(function()
{
var element_count = $('#mydiv').children().length;
}
演示: -
如jquery网站http://api.jquery.com/children/中所述: -
.children()方法与.find()的区别仅在于.children() 在.sind()可以遍历时沿DOM树向下移动一个级别 在多个级别选择后代元素(孙子, 等)。
另一个选项是.find,如你的代码所示,但你缺少document.ready在你的情况下!
答案 2 :(得分:0)
您可以使用.children()
方法获取包含元素的列表。您只能获得直接子女。
var contents = $("#myDiv").children();
var content_count = contents.length;