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

JS问题:当banner-section无内容时为body添加no-banner类失败求助

问题分析与修复

原代码有两个核心问题:

  • document.querySelector('.banner-section')返回单个DOM元素,不是数组/类数组对象,没有length属性。!banner.length等价于!undefined,结果永远为true,所以不管banner有没有内容都会给body加no-banner类。
  • 逻辑判断偏差:需求是当banner-section元素无内容时加类,不是元素不存在时加类。

修复后的代码

JavaScript

function bannerCheck() {
  const banner = document.querySelector('.banner-section');
  // 先确保元素存在,再检查内容是否为空(去除空白字符后)
  if (banner && banner.textContent.trim() === '') {
    document.body.classList.add('no-banner');
  }
}

bannerCheck();

测试场景示例

当banner-section为空(包括仅含空格、换行等空白字符)时,body会被加上no-banner类:

<body>
  <div class="banner-section">
    <!-- 仅空白内容或完全为空 -->
  </div>
</body>

当banner-section包含实际内容时,不会给body添加类,完全符合需求。

补充说明

  • 用textContent.trim()是为了排除元素内只有空白字符的情况,更贴合“无内容”的实际判定标准。
  • 先判断banner是否存在,避免元素不存在时调用textContent引发报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 00:26:01