You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript实现ul无子元素时隐藏指定h5功能不生效如何解决

问题原因
  • jQuery中length是属性而非方法,你代码里写的length()属于语法错误,会直接导致判断逻辑不执行
  • 现有判断仅在页面首次加载时运行一次,后续用户执行删除操作修改ul子元素数量时,不会重新触发判断,因此删空列表后也不会隐藏两个h5元素
修复方案

先封装公共的列表空状态检查函数,在页面初始化、每次删除操作完成后都调用该函数即可,完整可运行代码如下:

$(function() {
  // 页面初始化先检查一次空状态
  checkListEmpty();

  // 原有交互:点击delete淡入叉号图片
  $("#delete").on("click", function() {
    $("li.cross img").fadeIn();
  });

  // 原有交互:点击叉号删除对应条目
  $("#list-div").on("click", "li.cross img", function() {
    // 移除当前叉号所在li和前一个链接li
    $(this).parent().prev().remove();
    $(this).parent().remove();
    // 删除完成后重新检查空状态
    checkListEmpty();
  });

  // 原有交互:点击close-delete隐藏叉号图片
  $("#close-delete").on("click", function() {
    $("li.cross img").hide();
  });

  // 空状态检查封装函数
  function checkListEmpty() {
    const $list = $("#list-div");
    // 注意length是属性,不加括号
    if ($list.children().length === 0) {
      $("#delete, #close-delete").hide();
    } else {
      $("#delete, #close-delete").show();
    }
  }
})

内容的提问来源于stack exchange,提问作者Sahil Handique

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 18:30:00