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.