JQuery - 如何计算选择器选择的元素数量?

Jos*_*eld 15 javascript jquery

我使用$().fadeOut()来淡出列表中的项目(<li> </ li>).当列表为空时我希望隐藏父对象.

我计划通过检查触发器事件来完成此操作,如果对象的计数为0则忽略列表然后隐藏父元素.如果需要,我可以使用fadeOut回调删除元素.

关键问题: 如何在ul中选择li标签,然后使用jquery获取它们的总数?

SLa*_*aks 27

像这样:

$('ul > li').length
Run Code Online (Sandbox Code Playgroud)

更优雅的方式就是写作

$('ul:empty').fadeOut();
Run Code Online (Sandbox Code Playgroud)

如果ul不为空,则选择器将不匹配任何内容,代码将不执行任何操作.

你可能需要写

$('.SomeContainer:has(ul:empty)').fadeOut();
Run Code Online (Sandbox Code Playgroud)


meo*_*meo 11

使用.length

$('ul li').length // gives you back all li's in your ul
$('ul > li').length // give just the first children li's
Run Code Online (Sandbox Code Playgroud)

所以为了隐藏你的父母你可以这样使用它:

elements = $('ul > li')

if (elements.length) {
   elements.fadeOut()
}else{
   elements.parent().fadeOut()
}
Run Code Online (Sandbox Code Playgroud)


use*_*716 5

只需使用.lengthjQuery集合.

var $elements = $('ul#myUlElement').children('li');
alert($elements.length)
Run Code Online (Sandbox Code Playgroud)