【发布时间】:2022-01-15 07:42:40
【问题描述】:
尝试获取多个文件输入及其相应的预览以加载。我通过类名获取元素,但我认为我没有正确地迭代它们。我不想为元素使用唯一 ID,因为我将动态地将它们添加到页面中,并且无法为每个输入硬编码唯一 ID。如果可以请编辑我的代码或告诉我我做错了什么。谢谢。下面的代码。 https://codepen.io/pfbarnet/pen/VwMgmbP
var fileTag = document.getElementsByClassName("filetag"), i,
preview = document.getElementsByClassName("preview"), i;
for (i = 0; i < fileTag.length; ++i) {
//check if fileTag null
fileTag[0].addEventListener("change", function () {
changeImage(this);
});
function changeImage(input) {
var reader;
if (input.files && input.files) {
reader = new FileReader();
reader.onload = function (e) {
preview[0].setAttribute("src", e.target.result);
};
}
reader.readAsDataURL(input.files[0]);
}
}
<input type='file' class='filetag'><img src='test' class='preview'/></input>
<input type='file' class='filetag'><img src='test' class='preview'/></input>
【问题讨论】:
-
fileTag[0]应该是fileTag[i]
标签: javascript html file input