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

如何将Spoonacular API返回的菜谱标题包裹<p>和<a>标签插入innerHTML

解决Spoonacular API菜谱标题的HTML标签包裹问题

问题核心

你之前的模板字符串语法错误,导致无法正确生成带标签的HTML内容,同时需要为每个菜谱标题添加对应链接。

正确代码实现

使用**模板字符串(反引号`包裹)**来正确拼接HTML标签与变量,同时利用菜谱的id构造标准的Spoonacular菜谱链接:

let recipeTitles = function(){
  return data.map(el => `
    <p>
      <a href="https://spoonacular.com/recipes/${el.title.replace(/\s+/g, '-')}-${el.id}" target="_blank">
        ${el.title}
      </a>
    </p>
  `).join('')
}

document.querySelector('#recipeTitle').innerHTML = recipeTitles()

错误原因说明

你之前的两种写法都存在语法问题:

  • return data.map(el => <p>${el.title}</p>).join(''):未用反引号包裹HTML片段,JS会将<p>识别为未定义变量,直接触发语法错误。
  • return data.map(el =>

    ${el.title}

    ).join(''):错误拆分了模板字符串,反引号必须成对包裹整个待拼接内容,不能在中间断开。

补充细节

  • replace(/\s+/g, '-')将标题中的空格替换为短横线,匹配Spoonacular菜谱链接的格式规范。
  • 添加target="_blank"可让链接在新窗口打开,优化用户浏览体验。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 13:30:42