导航菜单数据来自json文件,需字段匹配(label/url/icon)、路径正确(绝对路径+base标签)、dom加载后渲染并高亮当前页。

导航菜单数据从哪里来:JSON结构要匹配渲染逻辑
直接把 JSON 数据塞进 HTML 渲染前,先确认它的字段是否对得上模板需要的 label、url、icon(可选)这些键。常见错误是后端返回 name 和 link,但 JS 里却硬写成 item.label —— 结果菜单空白,控制台也没报错,只是 undefined 被拼进 DOM。
建议 JSON 示例长这样,兼容性高、语义清晰:
[
{"label": "首页", "url": "/"},
{"label": "产品", "url": "/products"},
{"label": "文档", "url": "/docs"},
{"label": "关于", "url": "/about"}
]
- 避免嵌套过深(比如
data.menu.items),除非你明确需要多级菜单,否则扁平数组最省事 - 如果 URL 是相对路径,确保
index.html所在位置不会导致跳转 404(例如部署在子目录时,用/products比products更稳) - 图标字段如存在,统一用类名(如
"icon": "icon-home"),方便用 CSS 管理,别塞内联 SVG
怎么把 JSON 塞进页面:fetch + innerHTML 最简路径
不用框架,就用原生 JS 在 <script></script> 标签里拉取并插入。关键不是“能不能做”,而是“在哪执行”——必须等 DOM 加载完再操作,否则找不到容器元素。
使用 PptxGenJS 和 Python 解析,将结构化的 HTML/CSS 幻灯片内容转换为原生、可编辑的 PowerPoint(.pptx)演示文稿。
实操建议:
- 把导航容器标记为
<nav id="main-nav"></nav>,别依赖 class 或模糊选择器 - 用
fetch('./menu.json'),注意路径是相对于index.html的,不是 JS 文件位置 - 成功后用
Array.map()生成字符串,再赋给document.getElementById('main-nav').innerHTML,比逐个appendChild快且不易出错 - 加个
.catch(),至少console.error('菜单加载失败', err),不然本地测试时 404 静默失败,你还在查 JS 语法
示例片段(放在
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










