我想創建一個web應用程序,它允許用戶從他們的pc上傳圖像,並從中創建一個對象,並添加它放入一個數組(記錄它及其屬性)並將其顯示在屏幕上。Javascript - 如何創建元素,將其添加到數組中,並顯示它
我創建了一個codepen:https://codepen.io/eve_mf/pen/XebVWv
HTML:
<form id="form" action="" method="post" enctype="multipart/form-data">
<div class="file-uploader-wrapper">
<input id="file-uploader" class="file-uploader-input" type='file' onchange="retrieveImageFromUpload(this);"/>
<button class="file-uploader-btn" type="button">Select an image</button>
</div>
</form>
<div id="map-view"></div>
JS:
let allImages = [];
let displayImages = document.getElementById("map-view");
let imagesCounter = 0;
$(".file-uploader-btn").click(function() {
$("#file-uploader").click();
});
function retrieveImageFromUpload() {
let imgReader = new FileReader();
imgReader.readAsDataURL(document.getElementById("file-uploader").files[0]);
imgReader.onload = function (imgReaderEvent) {
let imageUploadedName = imgReaderEvent.target.result;
return readUploadedImage(imageUploadedName);
};
}
//create HTML image from the uploaded img
function readUploadedImage(imageUploadedName) {
imagesCounter++;
let img = document.createElement('img');
img = {
"id": 'screen-' + imagesCounter,
"src": imageUploadedName,
"alt": 'Default-alt'
};
allImages.push(img);
console.log(allImages);
var imgHTML = img.cloneNode(true);
imgHTML = "<img id='"+ img.id + "' src='" + img.src + "' alt ='" + img.alt + "' />";
displayImages.appendChild(imgHTML);
console.log("-------------");
}
創建圖像元素之後,我的問題開始;我覺得我很困惑,但我無法真正瞭解在哪裏或爲什麼。
- 我用「let img = document.createElement('img');」創建圖像「
- 然後,我將它的屬性設置爲對象,我認爲這是我弄亂了。然後,我把這個對象放到我的數組中(稱爲allImages),所以,這就是我想要的。
- 但是,然後,將該對象添加到我的數組中的一部分,我想要顯示它爲HTML圖像,我正在嘗試與「appendChild」,但肯定是錯誤的東西,因爲我得到的錯誤,我不是使用節點元素進行操作。
有人能給我一個推動到正確的道路?
謝謝