【发布时间】:2021-04-23 04:21:31
【问题描述】:
我一直在从 Firebase 读取一些数据并正在调用一个函数。它继续像
function create(link){
----
}
现在,我在上面的函数中动态地在 HTML 的 Body 中创建了 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=" " 的其余图像甚至都没有创建。
它只是为第一个函数调用()编写的。
请指导我。我看不出哪里错了。
【问题讨论】:
-
id应该是唯一的。document.getElementById("imgg")将始终引用它找到的第一个,即您创建的第一个图像。您的代码还有许多其他问题,但快速解决方法是简单地将创建的imageElement作为第二个参数传递给download函数,这样 onload 函数就可以使用它。 -
是的,但我需要在外部创建它,以便我可以将它附加到其他 div
-
将 imageElement 传递给 download() 函数并使用它来设置 src。
标签: javascript html css firebase image