Я пишу ряд функций для отображения и скрытия различных элементов div на странице, применяя классы стилей, называемые «скрытыми» и «видимыми», с помощью setAttribute. Эта функция предназначена для сокрытия нескольких div-ов одновременно. Идентификатор каждого div, которому будет присвоен класс «hidden», указан в массиве.
Каждый div может иметь более одного класса, поэтому, когда div присваивается «скрытый» класс, его другие классы должны сохраняться, за исключением заменяемого «видимого» класса.
function hideSections() {
// Initialise array with div IDs
var divs = new Array("tab-1", "tab-2", "tab-3", "tab-4", "tab-5");
// Loop through divs in array
for (var count = 0; count < divs.length; count++) {
// Get existing classes
var div = document.getElementById(divs[count]);
var divClass = div.getAttribute("class");
// Remove "visible" class if it exists
divClass = divClass.replace("visible", "");
// Append "hidden" class
div.setAttribute("class", divClass + " hidden");
}
}
По какой-то причине эта функция не работает, хотя она определенно вызывается.
Предупреждение (), помещенное в цикл, появляется, если оно находится перед строкой [[var divClass = div.getAttribute ("class");]]. После этой строки его нет, поэтому я предполагаю, что в этой строке проблема.
У всех элементов div указан атрибут класса.