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

修复JS实现按钮点击切换下拉菜单显隐的代码问题

下拉菜单点击切换功能修复

问题根源

当前代码无法正常运行的核心原因是JavaScript语法错误:if条件判断的代码块未正确闭合就编写else分支,浏览器解析脚本时会抛出语法错误,导致点击事件的回调逻辑完全不执行。
除此之外你的代码还存在两个潜在问题:

  • 脚本标签放在<body>最开头,执行时DOM节点还未渲染完成,大概率会出现获取不到按钮、菜单节点的问题
  • CSS、JS资源引用使用本地绝对路径,文件位置变动后会出现资源加载失败的问题

修正后代码

JavaScript 部分

修正if/else的花括号匹配问题:

const button = document.getElementById("btn");
const list = document.getElementById("list");

// 初始化菜单为隐藏状态
list.style.display = "none";

button.addEventListener("click", () => {
  if (list.style.display === "none") {
    list.style.display = "block";
  } else {
    list.style.display = "none";
  }
});

注:判断相等建议使用严格相等===,避免隐式类型转换带来的异常判断。

HTML 部分

调整脚本引入位置到所有DOM节点之后,同时将资源路径改为相对路径:

<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
  <meta charset="utf-8">
  <title>下拉菜单</title>
  <link rel="stylesheet" href="dropdown.css">
</head>
<body>
  <button id="btn">Click Here</button>
  <ul id="list">
    <li>item</li>
    <li>item</li>
    <li>item</li>
    <li>item</li>
  </ul>
  <script src="dropdown.js"></script>
</body>
</html>

实现效果

修正后即可实现预期交互:

  • 页面初始加载时菜单默认收起隐藏
  • 点击按钮菜单展开显示
  • 再次点击按钮菜单重新收起,循环切换

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 21:24:26