计算无序列表中动态生成的列表元素的数量

时间:2011-01-19 17:41:26

标签: javascript xml jquery

我有一个从XML文件生成的菜单。使用AJAX加载XML文件。菜单中唯一一个硬编码的html是:

<div id="leftNav">
    <ul class="level1">
    </ul>
</div>

根据XML文件的内容动态创建菜单的其余部分。在Chrome检查器中,应该在菜单中的所有列表元素都在那里。现在,当我尝试计算列表元素的数量时,我得到0.我认为这是因为页面上没有硬编码的列表元素。我用来进行计数的代码是:

alert($('.level1 > li').size());

警告0.

编辑 - 我错放了函数调用,xml没有完成加载。代码确实按预期工作。

在尝试计算列表项之前,解析XML并生成额外列表项的函数已运行。

有关如何获取列表项数量的任何想法?

2 个答案:

答案 0 :(得分:1)

它是“。length”而非“.size()”

alert($('.level1 > li').length);

编辑 - 显然我在这里非常搞笑,但我还是会给“.length”一个镜头:-)同时确保你的脚本不会在列表中出现无关紧要的错误<li>元素 - 尝试更改选择器,使其只是“.level1 li”并查看是否会发生任何变化。

答案 1 :(得分:0)

您应该了解DOM,因为.lengthsize()正在计算li项,并且加载的DOM中没有li

在加载页面后动态添加。您应该在.on()函数

的帮助下在按钮上添加事件处理程序