如何更改图像的来源,在另一个元素的innerhtml中?

Posted

技术标签:

【中文标题】如何更改图像的来源,在另一个元素的innerhtml中?【英文标题】:how to change the source of an image, which is in the innerhtml of another element? 【发布时间】:2021-10-12 15:34:04 【问题描述】:

我有一个按钮,其 innerhtml 中有一个图像,我想更改这个图像

<button id="button1"><img src="someimage.png"></button>

我尝试过这样的事情(在一个由按钮调用的函数中):

this.innerhtml.setAttribute("src","someotherimage.png");
this.innerhtml="<img src="someotherimage.png">";

我有多个触发相同功能的按钮,但我希​​望该功能仅更改触发该功能的按钮的 img。 我可以在不为图像提供 ID 并使用大量 if 语句将图像 ID 与按钮匹配的情况下执行此操作吗?

提前致谢

【问题讨论】:

.innerHTML 只返回一个字符串。并且字符串没有 DOM 元素具有的方法。您可以选择图像作为按钮的子元素,并使用表达式document.querySelector("button img").src="newURL.png" 为其src 属性分配一个新值 【参考方案1】:

使用event 参数,获取currentTarget(监听器附加到的元素 - 这将是按钮),然后您可以从那里获取子&lt;img&gt;.children[0]

.addEventListener('click', (e) => 
  e.currentTarget.children[0].src = 'someotherimage.png';
);

【讨论】:

【参考方案2】:

更具体的 img 标签

.addEventListener('click', ($event) => 
    event.target.querySelector('img').src="someotherimage.png";
 );

【讨论】:

以上是关于如何更改图像的来源,在另一个元素的innerhtml中?的主要内容,如果未能解决你的问题,请参考以下文章

如何在另一个选择列表的更改功能上更改选择列表的值? [复制]

iOS 应用程序 - 如何从外部源更改启动图像?

如何在另一个表单中引用图片框(从另一个表单更改图片框)

如何重置 Jcrop 插件? IE。如何允许更改目标图像的来源?

如何根据 CSS prefers-color-scheme 更改图像源?

Java MVC:如何在另一个类更改时正确设置更改的主模型类