2010-05-31 2 views
1

Я пытаюсь сосчитать дочерние элементы с OLдлина Jquery Дети из ола

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> 

Я всегда получаю номер 2, независимо от того, сколько ликов находится под ol.

Знайте, что происходит ..?

ответ

7

попробовать

$("#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 в y наш код, когда вам предупреждение ..

+0

:) Спасибо! это было довольно просто. – DMin

+0

cool :) рад помочь! ура! – Reigel

+1

+1 для указания того, что означает «2». –

3

Попробуйте children() вместо children.

Для подвода ремней и подтяжек, попробуйте children('li').

+0

:) Спасибо! это было довольно просто. – DMin

+0

Мне нравится высказывание «пояс и подтяжки» – JerSchneid

2

вы также можете использовать .size() вместо .Length()

либо один работает, хотя .length() якобы быстрее.

+0

kaie, не знаю это. – DMin

Смежные вопросы