Не могу понять, почему цикл for ниже не работает.Javascript code getElementByID for loop
Я создал функцию, которая работает, поэтому HTML не является проблемой. Вот функция, которая работает:
function deactivateAllTabs() {
document.getElementById('tab-header-1').className = 'tab-header';
document.getElementById('tab-header-2').className = 'tab-header';
document.getElementById('tab-header-3').className = 'tab-header';
document.getElementById('tab-content-1').className = 'tab-content';
document.getElementById('tab-content-2').className = 'tab-content';
document.getElementById('tab-content-3').className = 'tab-content';
}
Вместо жесткое кодирование закладок заголовков и вкладка-содержимое идентификаторов, я думал, что создать цикл автоматически заботиться о будущих дополнительных вкладках.
Если я соответственно добавить еще один набор:
document.getElementById('tab-header-4').className = 'tab-header';
document.getElementById('tab-content-4').className = 'tab-content';
Все работает выше. Он не работает, когда я пытаюсь использовать цикл for ниже. Любая идея, где я ошибаюсь?
Я получаю ошибку при нажатии на вкладку является:
Uncaught TypeError: Cannot set property 'className' of null
function deactivateAllTabs() {
for (var i = 0; i < tabHeaders.length; i++) {
document.getElementById('tab-header-'+i).className = 'tab-header';
document.getElementById('tab-content-'+i).className = 'tab-content';
}
}
У вас есть элементы с идентификатором 'tab-header-0' и' tab-content-0'? – j08691
'document.getElementById ('tab-header -' + (i + 1)). ClassName = 'tab-header';' и тот же для следующей строки. –
Спасибо, Мэтт, похоже, что ты его нашел. Еще раз спасибо. –