可以遍历所有层隐藏,然后自身显示,或者显示的层赋予一个新的id,把原有新id的变回原来的。或者等楼下的有例子粘贴给你。

解决方案 »

  1.   

    也可以定义个全局变量
    层1 打开时 a=层1
    层5 打开时 a(层1)隐藏 a=层5 a(层5)显示
      

  2.   

    var prishowid = "firstshow"; //记住上次显示的层。
    function show( aaa )
    {
        window.document.all[ prishowid ].style.visibility = "hidden";
        window.document.all[ aaa ].style.visibility = "";
        prishowid = aaa;
    }
      

  3.   

    <style>
    div{
    display:none;}.display{
    display:block;}</style><script>
    function show(div)
    { if(document.getElementById(div).className=="display")

    return;

    } if(getElementsByClassName("display").length>0)
    {
    var el=getElementsByClassName("display");
    for(i=0;i<el.length;i++)
    {
    el[i].className="";
    }
    }
    document.getElementById(div).className="display";
    }function getElementsByClassName(n) { 
        var el = [],
            _el = document.getElementsByTagName('div');
        for (var i=0; i<_el.length; i++ ) {
            if (_el[i].className == n ) {
                el[el.length] = _el[i];
            }
        }
        return el;
    }
    </script>
      

  4.   

    <script language="javascript">
    function show(a1,a2,a3)
    {
    var a1,a2,a3;
       a1.style.display='block';
       a2.style.display='none';
       a3.style.display='none';
    }
    </script>  我是这样写的,但是这样如果太多,那么ONCLICK那里就比较多参数,不是很合适
    先谢谢上面的,问题还没有彻底解决
      

  5.   

    所以你看我上面的,只要你show改的是class或者是id ,再用一条CSS语句定义好这个Class的display属性,这样就不用一个个改了..我那个是哆嗦了点,你看3楼的就很简单明白..