0

我需要获得多个元素来切换打开和关闭。现在该功能只是选择ID,但我想知道如何让它选择一个类。我以为我可以更改为document.getElementByIddocument.getElementByClass但没有奏效。

我在搜索过程中选择了这段代码:

#ToggleTarget {display:hidden;}

<script type="text/javascript">
function Toggle() {
    var el = document.getElementById("ToggleTarget");
    if (el.style.display == "block") {
        el.style.display = "none";
    }
    else {
        el.style.display = "block";
    }
}
</script>
4

1 回答 1

1
var getElementsByClassName = function(node, classname) {
    if (document.getElementsByClassName) { 
        return document.getElementsByClassName(classname);
    }
    var a = [];
    var re = new RegExp('(^| )'+classname+'( |$)');
    var els = node.getElementsByTagName("*");
    for(var i=0,j=els.length; i<j; i++)
        if(re.test(els[i].className))a.push(els[i]);
    return a;
}

var Toggle = function(){
    var tp = getElementsByClassName(document.documentElement,'toggle');
        for(var i = 0; i < tp.length; i++){
            if(tp[i].style.display=='none')
                tp[i].style.display='block'
            else
                tp[i].style.display='none'
    }
}

使用getElementsByClassName然后循环它们。

编辑

只要确保他们有toggle我上面代码中使用的类。

更新

添加了 IE 支持的功能(来自https://stackoverflow.com/a/7410966/600101)。

于 2012-09-12T10:28:12.830 回答