Uncaught TypeError: Cannot read property 'length' of null
16.07.2018 09:00:49 am
Здрасте! Только начал писать на JavaScript и само собой разумеется сталкиваюсь с кучей ошибок, вот, например, такая ошибка: Uncaught TypeError: Cannot read property 'length' of null. Ошибка появляется в консоли браузера, зарыта она в функции (функция идентична оригиналу, но написана для теста):
В 3-ей строке. Что тут не верно?
Благодарю за помощь.
function turnover() {
var c_o = document.getElementById('overall');
var c = c_o.length;
for (var i = 0; c > i; i++) {
alert(i);
};
};
В 3-ей строке. Что тут не верно?
Благодарю за помощь.
- Жалоба
16.07.2018 02:54:52 pm
Здравствуйте, ХаКеР!
Вы получаете элемент по
Тут возможно стоит заменить функцию getElementById на getElementsByClassName, если есть на странице элементы с классом "overall", то они будут собраны в один массив и этот массив уже перебирать в цикле for. Либо же получать элемент при помощи getElementById, но не считать количество (оно одно) и работать без цикла.
Вы получаете элемент по
id="overall"
(getElementById('overall')
) и пытается получить количество элементов. Элементов с id="overall"
на странице может быть не больше одного...Тут возможно стоит заменить функцию getElementById на getElementsByClassName, если есть на странице элементы с классом "overall", то они будут собраны в один массив и этот массив уже перебирать в цикле for. Либо же получать элемент при помощи getElementById, но не считать количество (оно одно) и работать без цикла.
18.07.2018 12:09:20 pm
Элементов с id="overall" на странице может быть не больше одного...
Ну как? У меня их много...
если есть на странице элементы с классом "overall", то они будут собраны в один массив и этот массив уже перебирать в цикле for
Я вот не понял, Вы предлагаете изменить id="overall" на class="overall" и использовать функцию getElementsByClassName вместо getElementById? Мысль Вашу не понял, но это работает. Спасибо!
Ну как? У меня их много...
если есть на странице элементы с классом "overall", то они будут собраны в один массив и этот массив уже перебирать в цикле for
Я вот не понял, Вы предлагаете изменить id="overall" на class="overall" и использовать функцию getElementsByClassName вместо getElementById? Мысль Вашу не понял, но это работает. Спасибо!
18.07.2018 04:53:36 pm
[quote=881 post=2561]Вы предлагаете изменить id="overall" на class="overall" и использовать функцию getElementsByClassName вместо getElementById?
Да.
Функция getElementById работает с одним элементом.
Функция getElementsByClassName может работать со всеми элементами с указанным классом.
19.07.2018 02:55:51 am
[quote=881 post=2561]Ну как? У меня их много...
Вы ещё атрибуты html до конца не поняли. Идентификатор должен быть уникальным и не должен повторяться в рамках одного html документа. Советую почитать мануал по данному вопросу.[quote=881 post=2561]Мысль Вашу не понял, но это работает.