Pues si lo que quieres es ocultar divs sin hacerlo con los que tu indiques, algo así.
   
Código css:
Ver original<style type="text/css">
#all_divs {position:relative}
#all_divs div{background:#999;display:none}
.activo{display:block !important;}
</style>
  
    
Código javascript
:
Ver original<script type="text/javascript">
var trace = function(){
    var all = document.getElementById("all_divs").getElementsByTagName("div"),
    args = trace.arguments, en = function(e){
        for(var x=0;x<args.length;x++){ if(e == args[x]) return true }
        return !1
    }
    for(var i=0; i < all.length; i++) {
        if(en(all[i].id)) all[i].className="activo"
        else all[i].className=""
    }
    return !1
}
</script>
  
    
Código html:
Ver original<a href="#" onclick="trace('div1')">Div 1
</a>  <a href="#" onclick="trace('div2')">Div 2
</a>  <a href="#" onclick="trace('div3','div1')">Div 3
</a>  
<div id="div1"> div 1 content
</div> <div id="div2" class="activo"> div 2 content
</div> <div id="div3"> div 3 content
</div> 
  
La función trace oculta todos los divs, y no lo hará con los divs que coloques en los argumentos, no se si a eso vas pero es una forma parecida.