jQuery Children ol的长度

5
我正在尝试计算OL元素的子元素数量。
jQuery:
$(document).ready(function(){

$("#my_select").change(function(){
    alert($("#ol3").children.length);
                                     });});

HTML:
<ol id="ol1">
    <li class="2">Location 1-1</li>
</ol>

<ol id="ol2">
    <li class="15">Location 2-1</li>
    <li class="20">Location 2-2</li>
</ol>

<ol id="ol3">
    <li class="17">Location 3-1</li>
    <li class="16">Location 3-2</li>
    <li class="14">Location 3-3</li>
</ol>

无论有多少个li在ol下面,我总是得到数字2。知道发生了什么吗?
3个回答

13
尝试
$("#ol3").children().length \\ you missed () in children...
当您使用$("#ol3").children.length时,它会返回.children()函数中参数的数量...
尝试弹出$("#ol3").children,您将得到以下结果...
function (d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}

其中df是两个参数...这就是为什么在您的代码中使用alert时总是得到2的原因。


谢谢!那很简单。 - DMin

3

尝试使用children()代替children

为了更加保险,可以尝试使用children('li')


谢谢!那很简单。 - DMin
我喜欢这句话“腰带和吊带”。 - JerSchneid

2

您也可以使用 .size() 而不是 .length()

两者都可以,不过据说 .length() 更快。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接