2013-10-25 2 views
0

Я искал вокруг и не нашел чистого решения js для моей проблемы, которое я могу применить к моему коду. Это скрипт, который печатает массив изображений, но пока он печатает только 1 массив. код в Соответствующая HTML:Javascript для i not print array

<div id="imgViewer"></div> 
<script> 
var imgViewerImages = ['img/imgViewer/1.png','img/imgViewer/2.png','img/imgViewer/3.png','img/imgViewer/4.png','img/imgViewer/5.png','img/imgViewer/6.png']; 
</script> 
<script src="services/imgViewer.js"></script> 

И в JS:

function imgViewerPrinter(){ 
    var imgViewerTarget = document.getElementById('imgViewer'); 
    imgViewerImages.toString(); 

    for (var i=0;i<imgViewerImages.length;i++){ 
     imgViewerTarget.innerHTML = '<img src="' + imgViewerImages[i] + '">'; 
    } 
} 

window.onload = imgViewerPrinter(); 

Я все еще нуб является JS, поэтому я прошу вашей pacience.

Заранее спасибо

+0

Является ли объявление и использование массива в одном файле? –

+0

Массив находится в HTML, тогда сценарий JS вызывается из внешнего файла. –

+0

'imgViewerTarget.innerHTML = ' Abhitalks

ответ

1

попробовать:

imgViewerTarget.innerHTML += "<img src="' + imgViewerImages[i] + '">"; 
+0

Это сработало. Спасибо, выделите! Хотя я буду реализовывать предложение Luke14. –

0

Если вы хотите распечатать массив изображений не должны у вас есть HTML-код в цикле решений I номер изображения, например,

for (var i=0;i<imgViewerImages.length;i++){ 
var imgViewerImages = ['img/imgViewer/' + [i] + '.png']; 
    } 
+0

Почти ... в этом методе он буквально печатает [i] .png. Вам нужно использовать '... /' + i + '. Png' – Nzall

+0

Я вижу, как ваш код более эффективен. Я могу определить var с местоположением, а другой - с массивом. Но это предназначено для использования менее склонными к технологии людьми, в которых все имена могут быть более интуитивными. –

+0

да спасибо за это. – Luke14

0

попробовать что-то вроде этого, потому что ваш код переписывание innerHTML снова и снова, так что вы получите последнее итерационный значение.

Вместо того, чтобы манипулировать DOM в каждом цикле, код ниже будет управлять вашим DOM только один раз.

function imgViewerPrinter(){ 
    var imgViewerTarget = document.getElementById('imgViewer'); 

    var imgViewerImages_length = imgViewerImages.length; 
    var image = ''; 
    for (var i=0;i<imgViewerImages_length;i++){ 
     image += '<img src="' + imgViewerImages[i] + '">'; 
    } 
    imgViewerTarget.innerHTML = image; 
} 
0

Попробуйте этот оптимизированный soln.

var imgViewerImages =['img/imgViewer/1.png','img/imgViewer/2.png','img/imgViewer/3.png','img/imgViewer/4.png','img/imgViewer/5.png','img/imgViewer/6.png']; 

    function imgViewerPrinter(){ 

     var imgList=[]; 
     for (var i=0;i<imgViewerImages.length;i++){ 
      imgList.push('<img src="' + imgViewerImages[i] + '" />'); 
     } 
     var imgViewerTarget = document.getElementById('imgViewer'); 
     imgViewerTarget.innerHTML = imgList.join(''); 
    } 

    window.onload = imgViewerPrinter(); 
+0

Избегайте конкатенации строки, потому что она занимает больше памяти. – anand4tech