0

開閉を切り替えるには、複数の要素を取得する必要があります。現在、関数はIDを選択するだけですが、クラスを選択するためにIDを取得する方法を知りたいです。に変更できると思いdocument.getElementByIdましたdocument.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 に答える