Установка нового класса в div

Возможный дубликат:
Измените класс CSS элемента с помощью JavaScript

Я пытаюсь установить атрибуты div с помощью этого script. И у меня проблема в третьей строке, где я пытаюсь получить div-s от родительского div, id которого "загружается". но здесь проблема, похоже, что в переменных divs нет ничего. Почему так?

Script:

function  blink() {
        document.getElementById("loading").setAttribute("class","loader");
        var divs = document.getElementById("loading").getElementsByTagName("div");
        alert(divs[0].class);
        for(var i=0;i<divs.length;i++) {
            var _id = divs[i].id;
            document.getElementById(divs[i].id).setAttribute("class", "bar");
            }

        }

HTML:

    <div id="loading" class="loader2">
    <a href="#" onClick="blink()">
        <div class="bar_"></div>
        <div class="bar_"></div>
        <div class="bar_"></div></a>
    </div>

Я хочу заменить класс divs: "bar_" ​​на "bar". что я пытаюсь сделать.

6
23 февр. '12 в 19:30
источник поделиться
2 ответов
  • class - это будущее зарезервированное слово в JavaScript. Используйте className, а не class.
  • Как правило, используйте свойства, а не setAttribute
  • Нет необходимости повторно получать <div> по идентификатору, когда вы уже имеете их в divs!

Итак:

function blink() {
    var loader = document.getElementById("loading");
    loader.className = "loader";
    var divs = loader.getElementsByTagName("div");

    for(var i=0; i<divs.length; i++) {
        divs[i].className = "bar";
    }
}
22
23 февр. '12 в 19:33
источник

Вставка div внутри тега a недопустима html, что не помогает. Но основные проблемы в том, что для чтения атрибута класса вам нужно использовать el.className. Кроме того, вы пытаетесь прочитать атрибут id для своих внутренних div, если вы не определили его в html.

0
23 февр. '12 в 19:36
источник

Посмотрите другие вопросы по меткам или Задайте вопрос