getElementById прерывает цикл for?

255
03 марта 2018, 22:13

Получаю при помощи XMLHttpRequest список ID через разделитель "," у которых нужно изменить цвет бэкграунда, запускаю:

readyyes = this.responseText.split(",");
for (var i = 0; i < readyyes.length; i++)
{
alert(readyyes[i]);
document.getElementById(readyyes[i]).style.background = 'rgb(247, 80, 80)';
}

В этом случае цикл срабатывает 1 раз (alert выдает только 1 элемент массива), а если убираю document.getEl...., то работает нормально и alert запустится столько раз, сколько элементов в массиве.

Почему так?

Answer 1

document.getElementById возвращает ссылку на объект типа Element или null, если элемент с указанным ID не найден в документе.

Как проверить существует ли объект

if (!document.getElementById("main")) { 
    alert("No"); 
} else { 
    alert("Yes"); 
} 
 
if (document.getElementById("main") == null) { 
    alert("No"); 
} else { 
    alert("Yes"); 
}
<div id="main"></div>

READ ALSO
Доступ к списку в AJAX

Доступ к списку в AJAX

Используется фреймворк FlaskЕсть AJAX запрос

238
Как работает данный код?

Как работает данный код?

Доброго времени суток, пожалуйста, объясните как работает данный код, ответ должен выйти - 2

342
Как работают модули и module.exports в node js

Как работают модули и module.exports в node js

Вопрос по работе модулей и moduleexports в node js

254
Проверка формы в реальном времени

Проверка формы в реальном времени

Есть форма с полем input, и кнопка buttonНужно при вводе к примеру 0 кнопка исчезала, а при вводе 1 кнопка появлялась в режиме реального времени без...

210