se hai id non piu' riconducibili a valori numerici devi mantenere una relazione tra essi,
perche' quando cicli ricostruisci gli id dal valore numerico che ha la variabile i all' interno del ciclo
puoi farlo in vari modi, il piu' veloce dei quali e' avere un array con gli id degli elementi da mostrare/nascondere
codice:
...
var blocco = 'opt' + sel.options[selected].value;
var arrIdBlocchi=['optA','optB','optC','optD','optE'];
for(var i=0; i<arrIdBlocchi.length; i++)
{
document.getElementById(arrIdBlocchi[i]).style.display = 'none';
}
document.getElementById(blocco).style.display = 'block';
}
...
se invece non conosci a priori quanti e quali id devono essere interessati devi usare il DOM per identificare tutti gli elementi di un certo tipo,
se per esempio fossero tutti div, contenuti in un div con un id conosciuto
codice:
...
var divs=document.getElementById('idContenitore').getElementsByTagName('div');
for(var i=0; i<divs.length; i++){
// se sai di avere altri div nel contenitore che non devono essere affetti
// considera solo i div il cui id, per esempio, comincia per "opt"
if(divs[i].id && divs[i].id.indexOf('opt')==0){
document.getElementById(divs[i]).style.display = 'none';
}
// altrimenti, elimina il blocco if qui sopra e lascia solo
// document.getElementById(divs[i]).style.display = 'none';
}
...
ciao