Если a ul
содержит более одного элемента li
внутри, то что-то должно произойти, иначе нет!
Что я делаю неправильно?
if ( $('#menu ul').length > 1 ) {
Если a ul
содержит более одного элемента li
внутри, то что-то должно произойти, иначе нет!
Что я делаю неправильно?
if ( $('#menu ul').length > 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) {
Правильный синтаксис
$('ul#menu li').length
alert( "Size: " + $( "li" ).size() );
alert( "Size: " + $( "li" ).length );
Оба .size() и .length возвращают номер элемента. но метод size() устарел (JQ 1.8)..length свойство может использовать вместо size().
также вы можете использовать
alert($("ul").children().length);
Используйте функцию .size() вместо .length, а также укажите тег li в селекторе.
Измените свой код.
if ( $('#menu ul li').size() > 1 ) {
Используйте $('ul#menu').children('li').length
.size() вместо .length также будет работать
Другой подход для подсчета количества элементов списка:
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>
Сделайте следующее изменение:
console.log($("#menu li").length);
alert( "Size: " + $("li").size() );
или
alert( "Size: " + $("li").length );
Ниже приведены примеры метода .size() .
Предупреждение. Ответы выше работают только большую часть времени!
В jQuery версии 3.3.1 (другие версии не тестировались)
$("#myList li").length;
работает только в том случае, если элементы списка не переносятся. Если ваши элементы помещаются в список, тогда этот код подсчитывает количество занятых строк, а не число & lt; li & gt; элементы.
$("#myList").children().length;
получает фактическое число & lt; li & gt; элементов в вашем списке не количество строк, которые заняты.