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

如何在jQuery的html()方法中映射JSON内的嵌套数组?

解决食材数组单独渲染为列表项的问题

你当前的核心问题是模板字符串的语法错误,导致数组无法被正确拆分为单个<li>标签。错误写法里把map方法写在了插值外面,模板字符串无法识别执行这个JS逻辑。

错误写法分析

你尝试的代码中,${item.ingredients}只会把数组转成逗号分隔的字符串,后面的.map(...)会被当成普通文本输出,自然达不到效果。

正确修改方案

把整个map调用放在模板字符串的插值${}内部,为每个食材生成独立的<li>标签,最后用.join('')把数组拼接成完整的HTML字符串:

<ul class="uk-list uk-list-divider">
  ${item.ingredients.map(ingredient => `<li>${ingredient}</li>`).join('')}
</ul>

完整的渲染代码

这里顺便把图片路径改成了JSON中对应的item.img,避免所有卡片用同一张图:

$("#juices").html(`
  ${data.map(item => `
    <div>
      <div class="uk-card uk-card-default">
        <div class="uk-card-media-top">
          <img src="./assets/images/${item.img}" width="600" height="400" alt="${item.name}">
        </div>
        <div class="uk-card-body">
          <h3 class="uk-card-title heading">${item.name}</h3>
          <p>${item.desc}</p>
          <ul class="uk-list uk-list-divider">
            ${item.ingredients.map(ingredient => `<li>${ingredient}</li>`).join('')}
          </ul>
        </div>
      </div>
    </div>
  `).join('')}                      
`)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 11:17:16