.lengthсообщает, сколько совпадений найдено в селекторе, поэтому это подсчитывает, сколько <li>у <ul>вас есть дочерних элементов ... если есть дочерние элементы, используйте "ul > li"вместо этого, чтобы получить только прямые дочерние элементы . Если у вас есть другие <ul>элементы на вашей странице, просто измените селектор, чтобы он соответствовал только его, например, если у него есть идентификатор, который вы бы использовали "#myListID > li".
В других ситуациях, когда вы не знаете дочерний тип, вы можете использовать *селектор (подстановочный знак) или .children(), например, так:
var count = $(".parentSelector > *").length;
или:
var count = $(".parentSelector").children().length;
Что, если не известно, что ребенок «Ли», и может быть кем угодно?
Starx
7
@Starx:$("#parent").children().length
rekamoyka
1
@AlecAnanian, Нет, я знаю как. То есть, я надеялся, что Ник тоже добавит это к своему ответу.
Starx
2
@Starx - добавлено на случай, если это поможет нескольким людям в будущем :)
Ник Крейвер
Что делать, если элемент не виден?
ᴍᴀᴛᴛ ʙᴀᴋᴇʀ
6
Для этого вам не нужен jQuery. Вы можете использовать JavaScript .childNodes.length.
Просто не забудьте вычесть 1, если вы не хотите включать текстовый узел по умолчанию (который по умолчанию пуст). Таким образом, вы должны использовать следующее:
Что, если вы используете это, чтобы определить текущий селектор, чтобы найти его дочерние элементы, чтобы это было так: <ol>тогда есть вопросы о том, <li>как написать селектор, который не
var count = $(this+"> li").length;будет работать ..
document.querySelectorAll('ul li').length
Ответы:
Вы можете использовать
.length
вот так:.length
сообщает, сколько совпадений найдено в селекторе, поэтому это подсчитывает, сколько<li>
у<ul>
вас есть дочерних элементов ... если есть дочерние элементы, используйте"ul > li"
вместо этого, чтобы получить только прямые дочерние элементы . Если у вас есть другие<ul>
элементы на вашей странице, просто измените селектор, чтобы он соответствовал только его, например, если у него есть идентификатор, который вы бы использовали"#myListID > li"
.В других ситуациях, когда вы не знаете дочерний тип, вы можете использовать
*
селектор (подстановочный знак) или.children()
, например, так:или:
источник
$("#parent").children().length
Для этого вам не нужен jQuery. Вы можете использовать JavaScript
.childNodes.length
.Просто не забудьте вычесть 1, если вы не хотите включать текстовый узел по умолчанию (который по умолчанию пуст). Таким образом, вы должны использовать следующее:
источник
Попробуйте использовать:
источник
Что, если вы используете это, чтобы определить текущий селектор, чтобы найти его дочерние элементы, чтобы это было так:
<ol>
тогда есть вопросы о том,<li>
как написать селектор, который неvar count = $(this+"> li").length;
будет работать ..источник
$("ol.class > li").length
Вы можете сделать это с помощью jQuery:
Этот метод получает список своих дочерних элементов, а затем подсчитывает длину этого списка, так просто.
Примечание: метод children () проходит один уровень вниз по дереву DOM.
источник