Ошибка типа, отображаемая в консоли

HTML-файл того же самого

Это (файл Java-скрипта), для которого я получил ошибку типа

//GETELEMENTBYID
// Accessing the H1 tag dynamically and changing the colour

var ht = document.getElementById('hd1');
ht.style.color='white';
ht.style.backgroundColor='grey';

//Changing the text of the contents

var p1 = document.getElementById('para1');
p1.innerText='Java Script is kinda tough';

/* GETELEMENTSBYCLASSNAME
Changing the colour of list items */

var list = document.getElementsByClassName('list1');
console.log(list);
list[0].style.backgroundColor='gray'; // We have to specifically mention the item index for styling, else it'd show error.

for(var i = 0 ; i<= list.length; i++){
    list[i].style.color='white';  
}

Внутри цикла for в строке кода [21] отображается ошибка, которую я прикрепил к изображению. Любая помощь будет принята с благодарностью.

-1
Sanjeev Krishna S 30 Окт 2023 в 05:39

2 ответа

Лучший ответ

Массивы начинаются с 0. Array.length — это удобочитаемая форма длины.

Итак, arr = [0,1,2, 3,4] имеет длину 5. Но arr[5] находится за пределами поля. В цикле for вы выполняете цикл до i<=arr.length, что дает вам неопределенное значение. Удалите =, чтобы зациклить все элементы и не более того.

0
Mendi Sterenfeld 30 Окт 2023 в 05:54
Большое спасибо, брат, очень ценю твою помощь (ошибка исчезла). Есть ли какая-нибудь кнопка «Спасибо»/полезная информация или что-то в этом роде?
 – 
Sanjeev Krishna S
30 Окт 2023 в 06:01
Просто проголосуйте за ответы, которые работают
 – 
Brent
30 Окт 2023 в 06:03
@Брент, спасибо. Кажется, я не могу проголосовать за него, так как я новичок на этом сайте и мне нужно как минимум 15 очков репутации. Я обязательно сделаю это, как только наберу очки.
 – 
Sanjeev Krishna S
30 Окт 2023 в 06:24
Не беспокойся! Все хорошо
 – 
Brent
30 Окт 2023 в 06:27

При работе с массивами обычно используется i < длина массива. Однако, если вы предпочитаете сохранить знак «=». Вы можете сделать я <длина массива - 1 :)

//GETELEMENTBYID
// Accessing the H1 tag dynamically and changing the colour

var ht = document.getElementById('hd1');
ht.style.color='white';
ht.style.backgroundColor='grey';

//Changing the text of the contents

var p1 = document.getElementById('para1');
p1.innerText='Java Script is kinda tough';

/* GETELEMENTSBYCLASSNAME
Changing the colour of list items */

var list = document.getElementsByClassName('list1');
console.log(list);
list[0].style.backgroundColor='gray'; // We have to specifically mention the item index for styling, else it'd show error.

for(var i = 0 ; i < list.length; i++){
    list[i].style.color='white';  
}

Код теперь должен работать :D

0
Brent 30 Окт 2023 в 06:05