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

添加图片后吉他和弦搜索栏失效及ReferenceError问题求助

吉他和弦搜索网站问题排查与修复方案

1. 解决 Uncaught ReferenceError: Cannot access 'isVisible' before initialization 错误

这个错误是ES6变量声明规则导致的:用let/const声明的变量存在暂时性死区,必须先完成声明才能访问。

  • 打开script.js,找到所有用到isVisible的代码位置,把变量声明语句(let isVisible或const isVisible)移到第一次使用该变量的代码之前。
  • 错误示例:
    // 错误:先调用变量再声明
    updateVisibility(isVisible);
    let isVisible = false;
    
    修正后:
    // 正确:先声明再调用
    let isVisible = false;
    updateVisibility(isVisible);
    
  • 如果isVisible是在if、for这类块级作用域内声明的,不要在作用域外部提前引用它。

2. 修复搜索过滤失效问题

添加图片后过滤功能失效,大概率是和弦对象的结构发生变化,导致原有过滤逻辑无法正确读取root或key字段。

第一步:检查db.json的结构变化

对比添加图片前后的和弦对象,确保仅新增image字段,未修改原有root/key字段:

  • 添加图片前的结构(参考):
    {
      "chords": [
        {"root": "C", "key": "Major"}
      ]
    }
    
  • 添加图片后的正确结构:
    {
      "chords": [
        {"root": "C", "key": "Major", "image": "./images/c-major.png"}
      ]
    }
    

如果不小心修改了root/key的字段名称,改回原名称即可。

第二步:核对过滤逻辑的字段匹配

检查script.js中的过滤函数,确保使用的字段名与db.json完全一致:

// 正确示例:匹配db中的root和key字段
const filteredChords = chords.filter(chord => {
  return (chord.root === selectedRoot || selectedRoot === 'all') &&
         (chord.key === selectedKey || selectedKey === 'all');
});

如果之前误将chord.root写成chord.rootNote这类错误名称,修正为正确字段名即可。

第三步:调试数据获取过程

在获取和弦数据的代码中添加console.log,查看返回的数据结构是否正确:

fetch('http://localhost:3000/chords')
  .then(res => res.json())
  .then(chords => {
    console.log当前和弦数据:', chords); // 打开浏览器控制台查看输出
    // 后续渲染、过滤代码
  });

如果控制台输出的chords数组中没有root或key字段,说明db.json的数据结构有误,需要修正。

3. 额外检查点

  • 确认npm start正常启动json-server,在浏览器中打开http://localhost:3000/chords,查看返回的JSON数据是否包含root、key、image字段。
  • 渲染和弦的代码中,不要覆盖或修改root/key的原始值,示例如下:
    chords.forEach(chord => {
      const chordCard = document.createElement('div');
      chordCard.innerHTML = `
        <h3>${chord.root} ${chord.key}</h3>
        <img src="${chord.image}" alt="${chord.root} ${chord.key} 和弦指法图">
      `;
      document.getElementById('chords-container').appendChild(chordCard);
    });
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 12:15:03