在javascript中发布打印图像数组

时间:2017-08-17 08:25:13

标签: javascript html arrays iteration gallery

我正在使用一系列图片做一个简单的图库:

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:

like in the screenshoot

以下是它在屏幕上的显示方式: enter image description here

2 个答案:

答案 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;