javascript - 检测列表是否为空

标签 javascript html list

我正在使用w3School's tutorial创建过滤器列表。我想知道是否有一种方法可以检查列表何时为空并执行函数,以及何时列表中有内容并执行函数。是否可以?谢谢。

最佳答案

您可以使用querySelectorAll来获取所有li,然后检查有多少。

if(document.querySelectorAll("#myUL li").length === 0) {
    // The list is empty
} else {
    // The list is not empty
}

编辑

正如 Punit 注意到的(请参阅此答案的评论),li 元素不会被删除,而是被隐藏。

要在搜索后无论列表是否为空都执行函数,最简单的方法是修改 for 循环以添加一个存储结果数量的变量:

var foundCount = 0;
for (i = 0; i < li.length; i++) {
    a = li[i].getElementsByTagName("a")[0];
    if (a.innerHTML.toUpperCase().indexOf(filter) > -1) {
        li[i].style.display = "";
        foundCount++; // Increment the count
    } else {
        li[i].style.display = "none";
    }
} 

然后测试 foundCount 变量:

if(foundCount === 0) {
    // List is empty
} else {
    // There is at least one element
}

关于javascript - 检测列表是否为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41092498/

相关文章:

javascript - Cordova 相机 PictureSourceType PHOTOLIBRARY v SAVEDPHOTOALBUM

javascript - 如何禁用 Google map 移动布局上的滚动?

javascript - 当文本从 MS Word 粘贴到文本区域时如何捕获格式?

css - 使用 css 将图像在图形内的链接内垂直居中

html - CSS - 水平对齐

c++ - 在 C++ 中清除容器的最佳方法是什么?

apache-flex - 在 Flex 4 列表中处理鼠标单击以查找所选项目(因为 itemClick 消失了)

python - 深度列表计数 - 列表中的列表计数

javascript - 如何在 html Canvas 中围绕文本绘制矩形?

python - 用于 python 的 CSS 感知智能 html 解析器