Вычисление элементов списка с использованием jQuery.length

Добрый день,

Моя проблема здесь в том, что мне нужно рассчитать детей, содержащихся в неупорядоченном списке. В настоящее время я пытаюсь использовать технику.length, но она не работает.

Мне нужно это, чтобы вычислить, есть ли в списке достаточно элементов для отображения скрытой ссылки в меню.

HTML

<ul> <a href="#" target="_blank"><h2>List item 1</h2></a> <li><a href="#" target="_blank">List item 2</a></li> <li><a href="#" target="_blank">List item 3</a></li> <li><a href="#" target="_blank">See more items..</a></li>
</ul>

CSS

.all_attractions { display: none !important; }

JQuery

var listLength = $('.locations_list').children().length();
if (listLength == 6) { $('.all_attractions').show();
}

Не на 100% уверены, где я буду ошибаться. Если кто-то может помочь, это будет очень признательно.

5 ответов

Избегайте скобок в длину

+ Изменить

var listLength = $('.locations_list').children().length();

в

var listLength = $('.locations_list').children().length;

и удалить! важно из правила CSS, чтобы убедиться, что это видно после вызова show()

.all_attractions { display: none; }

Вы должны помнить, что дети() будут учитывать также тег

<a href="#" target="_blank"><h2>List item 1</h2></a>

которые у вас есть как первый ребенок, а также

<li><code></code> <p> хотя это не видно.</p> </li>


ваш listLength равен 4,.children() дает дескриптор непосредственных детей.


var lenList = $('.locations_list > li').length;
if (lenList == 6) { $('.all_attractions').show();
}


if ($('.locations_list').find('li').length == 6) { $('.all_attractions').show();
}


Попробуйте length

var listLength = $('.locations_list li').length;
alert(listLength);
if (listLength == 6) { $('.all_attractions').show();
}

демонстрация

licensed under cc by-sa 3.0 with attribution.