我试图通过一个循环多次追加图像元素,但它只出现一次,任何想法为什么?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