我正在使用一系列图片做一个简单的图库:
var gallery_pictures = [
{ name:'01.jpg', alt:'01'},
{ name:'02.jpg', alt:'01'},
{ name:'03.jpg', alt:'01'},
{ name:'04.jpg', alt:'01'},
{ name:'05.jpg', alt:'01'}
];
在这个容器内:
<div style="width:1000px; margin: 0 auto;" id="gallery">
</div>
使用一个函数,使用map将文本存储在变量中:
var gallery = gallery_pictures.map(function gallery(foto, index, array) {
pictures = '<div style="width:190px;margin-right: 10px; float:left;"><img width="200" src="'+foto.name+'" alt="'+foto.alt+'" "></div>'
return pictures;
});
然后我使用innerHTML在我的div中打印它:
imageGallery.innerHTML=gallery;
我遇到的问题是,不知何故,每张照片之间都会出现“昏迷”字样。这里的代码结果是chrome:
答案 0 :(得分:1)
你想要的是每个或正常的循环。
您已将数组打印为html。这就是它们看起来像数组元素的原因。
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/map
map()方法创建一个新数组,其结果是在调用数组中的每个元素上调用提供的函数。
您将返回一个包含内部元素的数组。这就是你看到逗号的原因。
答案 1 :(得分:1)
你需要以一种没有逗号的方式连接数组。
var gallery = "";
gallery_pictures.forEach(function(foto){
var pictures = '<div style="width:190px;margin-right: 10px; float:left;"><img width="200" src="'+foto.name+'" alt="'+foto.alt+'" "></div>';
gallery += pictures;
});
imageGallery.innerHTML = gallery;