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

JS querySelectorAll失效 个人作品集资历板块按钮点击无响应

问题排查与解决方法

核心错误:querySelectorAll选择器语法错误

你代码中选择带data-target、data-content属性元素的写法不符合规范,document.querySelectorAll接收的是字符串格式的CSS选择器,属性选择器需要将[]写在字符串内部,不能传入数组格式的参数。
错误写法:

// 传入了数组作为参数,无法正确匹配到元素
const tabs = document.querySelectorAll(['data-target']),
      tabContents = document.querySelectorAll(['data-content'])

修正后的写法:

const tabs = document.querySelectorAll('[data-target]'),
      tabContents = document.querySelectorAll('[data-content]')

原代码因为选择器错误,导致tabs得到的是空节点集合,点击事件根本没有绑定到按钮上,所以点击无任何反应。

补充检查项

  • 确认页面中存在和data-target值对应的内容区域,并且所有内容区域都添加了data-content属性,示例如下:
<!-- 已有的按钮代码保持不变 -->
<div class="qualification__container container">
  <div class="qualification__tabs">
    <div class="qualification__button button--flex qualification__active" data-target='#education'>
      <i class="uil uil-graduation-cap qualification__icon"></i>
      Education
    </div>
    <div class="qualification__button button--flex" data-target="#work">
      <i class="uil uil-briefcase-alt qualification__icon"></i>
      Work
    </div>
  </div>
  <!-- 需要补充的内容区域 -->
  <div id="education" class="qualification__content qualification__active" data-content>
    教育经历内容
  </div>
  <div id="work" class="qualification__content" data-content>
    工作经历内容
  </div>
</div>
  • 确认你的JS文件是在DOM元素加载完成后执行的,建议将JS引入标签放在</body>标签之前,避免出现找不到元素的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 22:24:05