JavaScript - 隐藏所有其他 div

Uli*_*Uli 4 html javascript

我有许多 div 仅在单击链接后才可见。如何关闭所有打开的 div 以便只有点击的那个可见?
我正在使用这个 .js:

    function showhide(id){
        if (document.getElementById) {
        var divid = document.getElementById(id);
        divid.style.display = (divid.style.display=='block'?'none':'block');
        } }

        <a href="javascript:void(null)" onclick="showhide('features');">features</a>
<a href="javascript:void(null)" onclick="showhide('design');">design</a>
<a href="javascript:void(null)" onclick="showhide('create');">create</a>
Run Code Online (Sandbox Code Playgroud)

谢谢乌利

Gab*_*oli 6

一种方法是添加一个类并基于该类查找元素以隐藏它们(如其他答案中所示)

另一种方法是将元素的状态存储在一个对象中,并使用它来识别需要关闭的打开的元素。

var divState = {}; // we store the status in this object
function showhide(id) {
    if (document.getElementById) {
        var divid = document.getElementById(id);

        divState[id] = (divState[id]) ? false : true; // initialize / invert status (true is visible and false is closed)
        //close others
        for (var div in divState){
            if (divState[div] && div != id){ // ignore closed ones and the current
                document.getElementById(div).style.display = 'none'; // hide
                divState[div] = false; // reset status
            }
        }
        divid.style.display = (divid.style.display == 'block' ? 'none' : 'block');
    }
}
Run Code Online (Sandbox Code Playgroud)

演示在http://jsfiddle.net/gaby/LfzYc/