我試圖通過一個循環多次追加圖像元素,但它只出現一次,任何想法爲什麼?jquery循環附加圖像元素只是追加一次
這裏是我的代碼
$(document).ready(function() {
var myImage = new Image();
myImage.src = 'image.jpg';
for(i=0; i < 12; i++) {
$('#photos').append(myImage)
}
});
我試圖通過一個循環多次追加圖像元素,但它只出現一次,任何想法爲什麼?jquery循環附加圖像元素只是追加一次
這裏是我的代碼
$(document).ready(function() {
var myImage = new Image();
myImage.src = 'image.jpg';
for(i=0; i < 12; i++) {
$('#photos').append(myImage)
}
});
,因爲如果不是則多次
改變你的jQuery這種使用同一個對象,您應該創建for
循環內的圖像對象,
$(document).ready(function() {
for (i = 0; i < 12; i++) {
var myImage = new Image();
myImage.src = 'image.jpg';
$('#photos').append(myImage);
}
});
更新:這不會影響頁面加載時間,因爲瀏覽器只會加載一次圖像並將其緩存以備後用。你可以在這裏看到更多的細節When a page loads an image, does it load it only once, or every time it is found in the markup?
的事情是我想要的形象被加載並準備追加之前追加,這不會減緩那個過程? –
@MarcoCastro你會追加圖像12次?這是固定的還是可能改變的? –
是的,我會的,它會改變,因爲它們會是不同的圖像,無論我想要的是在追加它們之前加載我的圖像,這就是爲什麼我不希望它們被附加到循環中,我不知道它是否它有道理我在說什麼 –
您可以使用cloneNode方法
var myImage = new Image();
myImage.src = 'image.jpg';
for(i=0; i < 12; i++) {
$('#photos').append(myImage.cloneNode())
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="photos"></div>
試試這個代碼:
$(document).ready(function() {
for(i=0; i < 12; i++) {
var myImage = new Image();
myImage.src = 'image.jpg';
$('#photos').append(myImage)
}
});
這是更快:
var i, images = '';
for(i = 0; i < 12; i++)
images += '<img src="image.jpg">';
$('#photos').append(images);
做出的jsfiddle請 – Mustaghees