Подтвердить что ты не робот

Jquery count li элементы внутри ul → length?

Если a ul содержит более одного элемента li внутри, то что-то должно произойти, иначе нет!

Что я делаю неправильно?

if ( $('#menu ul').length > 1 ) {
4b9b3361

Ответ 1

Вы должны считать элементы li не элементами ul:

if ( $('#menu ul li').length > 1 ) {

Если вам нужен каждый элемент UL, содержащий по крайней мере два элемента LI, используйте функцию фильтра:

$('#menu ul').filter(function(){ return $(this).children("li").length > 1 })

Вы также можете использовать это в своем состоянии:

if ( $('#menu ul').filter(function(){ return $(this).children("li").length > 1 }).length) {

Ответ 2

Правильный синтаксис

$('ul#menu li').length

Ответ 3

alert( "Size: " + $( "li" ).size() );

alert( "Size: " + $( "li" ).length );

Оба .size() и .length возвращают номер элемента. но метод size() устарел (JQ 1.8)..length свойство может использовать вместо size().

также вы можете использовать

alert($("ul").children().length);

Ответ 4

Работает jsFiddle

Используйте функцию .size() вместо .length, а также укажите тег li в селекторе.

Измените свой код.

if ( $('#menu ul li').size() > 1 ) {

Ответ 5

Используйте $('ul#menu').children('li').length

.size() вместо .length также будет работать

Ответ 6

Другой подход для подсчета количества элементов списка:

var num = $("#menu").find("li").length;
if (num > 1) {
  console.log(num);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="menu">
  <li>Element 1</li>
  <li>Element 2</li>
  <li>Element 3</li>
</ul>

Ответ 7

Сделайте следующее изменение:

console.log($("#menu li").length);

Ответ 8

alert( "Size: " + $("li").size() ); 

или

alert( "Size: " + $("li").length );

Ниже приведены примеры метода .size() .

Ответ 9

Предупреждение. Ответы выше работают только большую часть времени!

В jQuery версии 3.3.1 (другие версии не тестировались)

$("#myList li").length; 

работает только в том случае, если элементы списка не переносятся. Если ваши элементы помещаются в список, тогда этот код подсчитывает количество занятых строк, а не число & lt; li & gt; элементы.

$("#myList").children().length;

получает фактическое число & lt; li & gt; элементов в вашем списке не количество строк, которые заняты.