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

从JavaScript对象获取图片在HTML中无法显示的问题咨询

问题:从JavaScript对象获取图片路径后无法展示图片,仅显示文件名文本

我想要从JavaScript对象中获取图片并通过HTML展示。电影名等文本部分可正常显示,但无法看到图片,仅能看到black_adam.jpg作为文本显示。图片与index.html在同一目录,我尝试在imgFile: "/black_adam.jpg"前添加斜杠也没用。以下是我的代码:

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Document</title>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta name="description" content="" />
    <meta name="keywords" content="" />
    <meta name="author" content="" />
    <!-- FAVICON -->
    <link rel="icon" type="image/png" sizes="32x32" href="#" />
    <!-- FONTS -->

    <!-- ICON LIBRARY -->

    <!-- PROJECT STYLES -->
    <!-- <link rel="stylesheet" href="style.css"> -->

    <style>
      .movie {
        width: 200px;
        height: 300px;
        background-color: black;
        color: #fff;
      }
    </style>

  </head>
  <body style="font-family: 'Segoe UI', sans-serif">
    <div class="movie">
      <div class="img"></div>
      <h2 class="movie-title"></h2>
      <p class="release"></p>
      <p class="duur"></p>
      <p class="cast"></p>
    </div>

    <script>
      const movieEl = document.querySelector(".movie");

      const movie = {
        id: 1,
        name: "Black Adam",
        description:
          "Nearly 5,000 years after he was bestowed with the almighty powers of the Egyptian gods-and imprisoned just as quickly-Black Adam (Johnson) is freed from his earthly tomb, ready to unleash his unique form of justice on the modern world.",
        releaseYear: 2022,
        runtime: "2 hr 4 min",
        rating: 6.9,
        cast: ["Dwayne Johnson", "Aldis Hodge", "Pierce Brosnan"],
        imgFile: "black_adam.jpg"
      };
      
      movieEl.innerHTML =
      `
      <div class="img">${movie.imgFile}
        <h2 class="movie-title">${movie.name}</h2>
        <p class="release">${movie.releaseYear}</p>
        <p class="duur">${movie.runtime}</p>
        <p class="cast">${movie.cast} </p>
      </div>
      `
    </script>
  </body>
</html>

请问为何这种方式无法正常显示图片?


解答

核心原因

你只是把图片路径的字符串直接插入到HTML中,浏览器会将其当作普通文本渲染,不会自动识别为图片资源。网页中展示图片必须依赖<img>标签,通过该标签的src属性指定图片路径,浏览器才会加载并显示图片。

修复代码

修改模板字符串部分,将${movie.imgFile}替换为<img>标签,把路径赋值给src属性,同时可以添加alt属性提升可访问性:

movieEl.innerHTML =
`
<div class="img">
  <img src="${movie.imgFile}" alt="${movie.name} 海报">
  <h2 class="movie-title">${movie.name}</h2>
  <p class="release">${movie.releaseYear}</p>
  <p class="duur">${movie.runtime}</p>
  <p class="cast">${movie.cast.join(', ')} </p>
</div>
`

另外补充:演员列表是数组,直接插入会显示默认的逗号分隔格式,用join(', ')可以让演员名字的分隔更美观自然。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 03:55:16