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

如何使用mmenu插件将JSON数据注入联系人列表?

如何用JSON数据替换mmenu插件的硬编码联系人列表

步骤1:创建联系人JSON数据文件

新建contacts.json文件,按以下结构存储联系人信息:

[
  {
    "firstName": "Alan",
    "lastName": "Thompson",
    "phone": "012-345-6789",
    "email": "alan@domain.com",
    "avatar": "img/profile-1-b.png"
  },
  {
    "firstName": "Anne",
    "lastName": "Cook",
    "phone": "012-345-6789",
    "email": "anne@domain.com",
    "avatar": "img/profile-2-b.png"
  }
]

步骤2:简化原有HTML结构

清空ul#contacts内的硬编码内容,只保留空列表:

<div id="menu">
  <ul id="contacts"></ul>
</div>
<script src="http://localhost:8383/CCDir/mmenu.js"></script>

步骤3:编写JS加载并渲染数据

在页面中添加JavaScript代码,通过fetch获取JSON数据,动态生成联系人列表的HTML结构,最后初始化mmenu插件:

// 获取JSON数据并渲染联系人列表
fetch('contacts.json')
  .then(response => response.json())
  .then(contacts => {
    const contactsList = document.getElementById('contacts');
    let html = '';

    // 遍历每个联系人生成对应HTML
    contacts.forEach(contact => {
      const fullName = `${contact.firstName} ${contact.lastName}`;
      html += `
        <li>
          <span>
            <span class="preview">
              <img src="${contact.avatar}" />
              <span>${contact.firstName}<br>
                <small>${contact.lastName}</small>
              </span>
            </span>
          </span>
          <div data-mm-title="${fullName}">
            <div class="details">
              <img src="${contact.avatar}" />
              <strong>${contact.firstName}</strong>
              <dl>
                <dt>Name</dt>
                <dd>${fullName}</dd>
                <dt>Phone</dt>
                <dd>${contact.phone}</dd>
                <dt>Email</dt>
                <dd>${contact.email}</dd>
              </dl>
            </div>
          </div>
        </li>
      `;
    });

    // 将生成的HTML插入列表
    contactsList.innerHTML = html;

    // 初始化mmenu插件(确保在DOM渲染完成后执行)
    new Mmenu('#menu');
  })
  .catch(error => console.error('加载联系人数据失败:', error));

注意事项

  • 确保JSON文件路径正确,与HTML页面处于同一目录或路径配置无误。
  • 若页面原本已初始化mmenu,需先销毁原有实例再重新初始化,避免冲突。
  • 本地测试时需通过HTTP服务器访问(如localhost),否则会出现跨域问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 16:43:21