1

下午好,

我的问题是我需要计算无序列表中包含的孩子。我目前正在尝试使用 .length 技术,但它似乎不起作用。

我需要做的是计算列表中是否有足够的项目来显示菜单中的隐藏链接。

HTML

<ul class="locations_list">
    <a href="#"><h2>List item 1</h2></a>
    <li><a href="#">List item 2</a></li>
    <li><a href="#">List item 3</a></li>
    <li class="all_attractions"><a href="#">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% 确定我在哪里出错了。如果有人可以提供帮助,将不胜感激。

4

5 回答 5

2

避免括号长度

改变

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

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

并从 CSS 规则中删除 !important 以确保它在调用 show() 后可见

.all_attractions { display: none; }

您需要记住 children() 也会考虑标签

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

您作为第一个孩子以及

 <li class="all_attractions"> 

即使它不可见。

于 2013-08-15T12:45:42.533 回答
0

尝试 length

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

演示

于 2013-08-15T12:42:50.957 回答
0
if ($('.locations_list').find('li').length == 6) {
    $('.all_attractions').show();
}
于 2013-08-15T12:44:03.947 回答
0

你的 listLength 是 4, .children() 给出了直接孩子的句柄。

于 2013-08-15T12:45:35.200 回答
0
var lenList = $('.locations_list > li').length;
if (lenList == 6) {
    $('.all_attractions').show();
}
于 2013-08-15T12:46:40.603 回答