我一直在預覽多個圖像,然後嘗試使用@ ratan-paul對"Preview an image before it is uploaded"的響應非常有用。但是,當我試圖調整代碼有點我得到了一個意想不到的結果。我所做的是爲每個<image>
創建一個<span>
標籤以添加一些樣式選項。這裏是jQuery代碼我結束了:在上傳前預覽圖像時發生意外的行爲
$(function() {
var span_id = "";
function readURL(input) {
for(var i =0; i< input.files.length; i++){
var span = $('<span>');
span_id = "span"+i;
span.attr('id',span_id);
span.appendTo('#img-previews');
if (input.files[i]) {
var reader = new FileReader();
reader.onload = function (e) {
var img = $('<img id="dynamic">');
img.attr('src', e.target.result);
img.attr('height','150px');
img.attr('width','200px');
img.appendTo("#"+span_id);
};
reader.readAsDataURL(input.files[i]);
}
}
}
$("#imgUpload").change(function(){
readURL(this);
});
});
現在奇怪的是,當我運行上面的代碼我創建的每個圖像的<span>
標籤,但所有的圖像得到塞進創建的最後一個<span>
。另一方面,如果我調試腳本,我會得到想要的結果,其中每個圖像都插入到它自己的<span>
標記中。我對此感到困惑,所以如果任何人有任何想法,爲什麼會發生這種情況,或者如何避免這種情況,將不勝感激。
我試着用let語句@duncan-smith切換我的for循環,但結果沒有改變。在我的IDE(phpstorm 2017.1.4)中,'let'被表示爲「當前JavaScript版本中不支持當前定義」的錯誤。我正在使用yii2框架,並且當前安裝的jquery版本是2.2.4。我目前正在測試的瀏覽器是Mozilla firefox 54.0(32位),firefox開發者版本55.0b6(64位)和chrome 59.0.3071.115(官方版本)(64位)。任何想法是什麼問題? – natral
@natral,我已經更新了我的答案。看看它是否適合你。 –
偉大的,幫助了很多@鄧肯。謝謝! – natral