javascript - 使用JS动态分配img标签的src
问题描述
我一直在从 Firebase 读取一些数据并正在调用一个函数。它继续像
function create(link){
----
}
现在,我在上面的函数中动态地在 HTML 的正文中创建了 Image 标记,并为其分配了 Class 和 ID。
然后,我调用另一个函数从该 URL 获取数据
再次返回我的功能图像应该正确显示
function create(link) {
let bodyElement = document.body;
let imageElement = document.createElement('img');
imageElement.className = "image";
imageElement.id="imgg";
download(link);
imageElement.setAttribute("alt", "Image from Unsplash");
}
function download(link) {
let url= link;
console.log(url);
if (!url) return;
const req = new XMLHttpRequest();
req.responseType = "text/html";
req.onload = function(e) {
var img = new Image();
document.getElementById("imgg").src = this.response;
}
}
所以考虑一下我将整个 create() 调用了 10 次。
我将从 Firebase 获得 10 个不同的链接,并且每次都应该创建新的图像标签并将其附加到 HTML 正文
但是,我成功地获得了第一张图像,其余图像只是空白。src=" " 的其余图像甚至都没有创建。
它只是为第一个函数调用()编写的。
请指导我完成。我看不出我错在哪里。
解决方案
找到了。这是非常简单的代码更改。
我将 imageelement 作为参数传递给 download() 函数并将代码修改为
function download(link,imageElement) {
let url= link;
console.log(url);
if (!url) return;
const req = new XMLHttpRequest();
req.responseType = "text/html";
req.onload = function(e) {
var img = new Image();
imageElement.src = this.response;
}
}
推荐阅读
- python - 将值分配给新列相对于其他列的值是否重复
- .net - 尝试使用 Response.AddHeader() 下载文件时如何添加路径
- arrays - 在 Java 中,如何创建一个将数组设置为给定长度的方法?
- javascript - JavaScript addEventListener(); 减慢程序?
- html - css body filter invert 不适用于伪选择器
- javascript - 从字幕中找到对应的文字
- php - 如何获取重定向到另一个页面的网页内容?
- excel - XLSB 不会保存对宏的更改
- sql - 如何构造 Spring Data 存储库查询两个具有 IN 和相同列表的参数?
- javascript - 等待 JavaScript 中的动态导入