2015-04-28 3 views
0

В заявленииСвойство length jQuery: длина какого элемента будет возвращена, если имеется более одного элемента с сопоставлением?

var length = $(this).parent().parent().parent().children('tr').length; 

где $(this).parent().parent().parent() часть дает нам <tbody> элемент, который случается иметь более чем одинtr детей.

. Итак, какие tr среди них children от tbody, которые возвращаются $(this).parent().parent().parent(), это tr, длина которого будет возвращена недвижимостью .length?

............................................

с documentation of the length property,

Описание: число элементов в объекте JQuery.

Я понимаю как: «JQuery объект» вот tr элемента, который является ребенком из tbody возвращенных $(this).parent().parent().parent() и «число элементов» в этом объекте JQuery является число td s в этом tr. Таким образом, недвижимость .length здесь вернет номер td s в tr, на что обращается внимание, не так ли?

. Но в данном примереhere (я копирую код ниже для справки), заявление

var n = $("div").length; 

назначает n число div с в body. Но разве это не должно содержать количество элементов в/прямых дочерних элементах div?

. И снова, когда div: length будет возвращен, если разные div s имеют разную длину?

<!doctype html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8"> 
    <title>length demo</title> 
    <style> 
    body { 
    cursor: pointer; 
    } 
    div { 
    width: 50px; 
    height: 30px; 
    margin: 5px; 
    float: left; 
    background: green; 
    } 
    span { 
    color: red; 
    } 
    </style> 
    <script src="https://code.jquery.com/jquery-1.10.2.js"></script> 
</head> 
<body> 
    <span></span> 
    <div></div> 
<script> 
$(document.body) 
    .click(function() { 
    $(document.body).append($("<div>")); 
    var n = $("div").length; 
    $("span").text("There are " + n + " divs." + 
     "Click to add more."); 
    }) 
    // Trigger the click to start 
    .trigger("click"); 
</script> 

</body> 
</html> 
+1

'length' * не * найти * содержание длина *, он находит * размер (количество) объектов *. Вы усложняете это. Свойство 'length' возвращает ** размер ** списка совпадающих элементов в предыдущем объекте.Вот и все! Чтобы вычислить длину/размер дочерних элементов 'div',' $ ('div'), необходимо использовать children(). Length() '. –

+0

@ShaunakD "возвращает размер списка совпадающих элементов в предыдущем объекте" - спасибо за это, я думаю, что понимаю это сейчас. – Solace

ответ

1

Учитывая JQuery объекты length не означает длину содержимого внутри конкретного объекта.

length возвращает размер/количество соответствующих элементов.

$(this).parent().parent().parent().children('tr') . length 
|_______________________________________________|  |____| 
         |preceding object    |Size of the preceding list 

Так что, если <tbody> имеет 4 <tr> S - длина будет возвращать 4.

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

  • Нет связанных вопросов^_^