Hola de nuevo.
Si, mi recomendación es esa. Toma en cuenta que getElementById() retorna un puntero a un elemento, mientras que las otras dos retornan colecciones de objetos.
Si tienes un único tag con cada id de tu arreglo de locations, entonces la función podría quedar asi:
Código PHP:
function cambiar(){
if(selector.value != 'inicial'){
for (var i=0; i<localidades.length; i++){
document.getElementById(localidades[i]).disabled = false;
}
}
else{
for (var i=0; i<localidades.length; i++){
document.getElementById(localidades[i]).disabled = true;
}
}
}
Saludos.
¿Caracas?