Jquery所有选择器

时间:2014-05-22 06:42:45

标签: jquery html

我在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>

3 个答案:

答案 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;
}

演示: -

http://jsfiddle.net/9aMSz/1/

如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;