在div中设置新类

时间:2012-02-23 16:30:40

标签: javascript html replace

  

可能重复:
  Change an element's CSS class with JavaScript

我正在尝试使用此脚本设置div的属性。我在第三行有问题,我试图从父div获取div-s,id为“loading”。但在这里的问题,似乎在变量divs中没有什么。为什么?

脚本:

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”。这就是我想要做的。

2 个答案:

答案 0 :(得分:26)

    JavaScript中的
  • class is a future reserved word。使用className,而不是class
  • 作为一般规则,请使用属性,而不是setAttribute
  • 当您已在<div>中拥有divs时,无需按ID重新获取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"; } }

所以:

{{1}}

答案 1 :(得分:0)

div放在a标记内是无效的html,这没有帮助。但主要问题是要读取类属性需要使用el.className。此外,当您未在html中定义内部div时,您正尝试读取内部div的id属性。