在div中设置新课程

可能重复:
使用JavaScript更改元素的CSS类

我试图用这个脚本来设置div的属性。 我有问题在第三行,我想从父div的哪个id是“加载”的div-s。 但在这里的问题,似乎在变量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 class:“bar_”替换为“bar”。 这就是我想要做的。


  • class是JavaScript中未来的保留字。 使用className ,而不是class
  • 作为一般规则,使用属性,而不是setAttribute
  • 当你已经在divs拥有它们时,不需要通过ID重新获取<div>
  • 所以:

    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";
        }
    }
    

    把一个div放在a标签里是不合法的html,这没有帮助。 但主要的问题是读取需要使用el.className的类属性。 另外,当你没有在html中定义它时,你试图读取内部div的id属性。

    链接地址: http://www.djcxy.com/p/25199.html

    上一篇: setting new class in div

    下一篇: Remove CSS class from element with JavaScript (no jQuery)