代码之家  ›  专栏  ›  技术社区  ›  DMin

jquery一个ol的子级长度

  •  3
  • DMin  · 技术社区  · 14 年前

    我正在计算一个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>
    

    不管有多少李,我总是能拿到第二名。

    知道发生了什么事吗?

    3 回复  |  直到 14 年前
        1
  •  11
  •   Reigel Gallarde    14 年前

    尝试

    $("#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(","))}
    

    哪里 d f 这两个论点…这就是为什么当你发出警报时,你的代码中总是有2个。

        2
  •  3
  •   Ken Redler    14 年前

    尝试 children() 而不是 children .

    对于安全带和吊带,尝试 children('li') .

        3
  •  2
  •   Zia    14 年前

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

    尽管.length()据说更快,但这两种方法都有效。