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

如何用JavaScript/jQuery判断small-div为空时隐藏对应middle-div

解决仅显示包含内容的middle-div问题

问题描述

HTML结构示例:

<div id="big-div">
    <div class="middle-div">
        <div>Child:</div>
        <div class="small-div">1</div>
    </div>
    <div class="middle-div">
        <div>Child:</div>
        <div class="small-div">2</div>
    </div>
    <div class="middle-div">
        <div>Child:</div>
        <div class="small-div"></div>
    </div>
</div>

当前显示效果:

Child:
1

Child:
2

Child:

需求:仅当small-div包含内容时,才显示对应的middle-div,预期效果:

Child:
1

Child:
2

尝试过的错误方法及问题

方法一

代码:

const element = document.getElementById("big-div");
let middle = element.getElementsByClassName("middle-div");
let small = element.getElementsByClassName("small-div");

for (let m = 0; m < middle.length; m++) {
    for (let s = 0; s < small.length; s++) {
        if (small[s].innerHTML = "") {
            middle[m].style.display = "none";
        }
    }
}

执行后结果:

Child:
Child:
Child:

问题:

  • 条件判断误用赋值运算符=,而非比较运算符==,直接清空了所有small-div的内容
  • 嵌套循环逻辑错误:每个middle-div会检查所有small-div,只要存在空的small-div,所有middle-div都会被隐藏

方法二

代码:

var small = [...document.getElementsByClassName("small-div")];
var disappear = function () {
    if (small.innerHTML == "") {
        parent.small.display = "none";
    }
}
small.forEach(disappear);

无效果,且console.log(small.innerHTML)输出undefined。
问题:

  • small是DOM元素数组,数组本身没有innerHTML属性,因此输出undefined
  • parent.small写法错误,无法正确获取父元素;隐藏元素需通过style.display = "none"设置

正确实现方式

方式一:遍历每个middle-div,检查内部的small-div

const middleDivs = document.querySelectorAll('.middle-div');
middleDivs.forEach(div => {
    const smallDiv = div.querySelector('.small-div');
    // 去除空白字符后判断是否为空,避免空格/换行符导致误判
    if (!smallDiv.textContent.trim()) {
        div.style.display = 'none';
    }
});

方式二:遍历small-div,控制其父元素middle-div

const smallDivs = document.querySelectorAll('.small-div');
smallDivs.forEach(div => {
    if (!div.textContent.trim()) {
        // 通过closest方法找到最近的父级middle-div并隐藏
        div.closest('.middle-div').style.display = 'none';
    }
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 11:31:03