Первая картинка в цикле идёт unknown

169
30 мая 2019, 18:50

Есть маленький скрипт ,который делает подобие анимации. Я как человек мало разбирающий в js , прошу помощи. Первая картинка идёт unknown , а остальное всё идёт по циклу. Картинки , такой не задавал.

var images = new Array(); 
    var i = 1; 
 
    images[1] = 'testlogo.png'; 
    images[2] = 'test1.png'; 
    images[3] = 'test2.png'; 
    images[4] = 'test3.png'; 
    images[5] = 'test4.png'; 
 
function viewImages() { 
 
        document.getElementById("img_main").src = images[i]; 
        if (i != images.length - 1) { 
          i++; 
          setTimeout("viewImages()",800); 
        } 
}

Answer 1

Не "unknown", a "undefined". Однако, код, который Вы привели в вопросе, этого не делает.

var images = new Array(); 
var i = 1; 
 
images[1] = 'testlogo.png'; 
images[2] = 'test1.png'; 
images[3] = 'test2.png'; 
images[4] = 'test3.png'; 
images[5] = 'test4.png'; 
 
function viewImages() { 
 
  document.getElementById("img_main").src = images[i]; 
  document.getElementById("img_main").alt = images[i]; 
  if (i != images.length - 1) { 
    i++; 
    setTimeout(viewImages, 800); 
  } 
} 
 
viewImages();
<img id="img_main" />

Вероятно, код, работу которого Вы наблюдаете, начинает с i равного нулю. Индексация массивов в javascript-е начинается с нуля:

var images = new Array(); 
var i = 0; 
 
images[0] = 'testlogo.png'; 
images[1] = 'test1.png'; 
images[2] = 'test2.png'; 
images[3] = 'test3.png'; 
images[4] = 'test4.png'; 
 
function viewImages() { 
 
  document.getElementById("img_main").src = images[i]; 
  document.getElementById("img_main").alt = images[i]; 
  if (i != images.length - 1) { 
    i++; 
    setTimeout(viewImages, 800); 
  } 
} 
 
//viewImages();
<img id="img_main" />

Update

Поставьте в разметке

<img id="img_main" src="testlogo.png"/>

а не

<img id="img_main" src=""/>
READ ALSO
Структура объекта NodeList JS

Структура объекта NodeList JS

Здравствуйте, интересует как устроен объект NodeList и ему подобные

156
YouTube подписаться на канал через консоль

YouTube подписаться на канал через консоль

Я не очень разбираюсь в работе js и пр, но мне нужен кое-какой функционал и я хотел бы спросить об этом у людей, которые понимают в этом

156
Плавающее меню, javascript на сайте

Плавающее меню, javascript на сайте

Такая проблема, вот на этом сайте http://mnogobuketovru/test

172
React не получается найти данные в объекте [закрыт]

React не получается найти данные в объекте [закрыт]

Есть код который передает массив в другой компонент, далее мне просто нужно найти в нем свойство thumb

186