var comboCont = document.getElementById("continente"),
comboPais = document.getElementById("pais"),
comboCiud = document.getElementById("ciudad"),
continentes = {
America: {
USA: ["San Francisco", "Seattle", "San Antonio"],
Perú: ["Lima", "Tacna", "Cusco"],
México: ["México D.F.", "Tijuana", "Guadalajara"]
},
Europa: {
España: ["Barcelona", "Valencia", "Madrid"],
Italia: ["Roma", "Venecia", "Milano"]
}
},
cambiaCiudad = function(contVal, paisVal){
var pais = continentes[contVal][paisVal];
comboCiud.innerHTML = null;
for (var j in pais){
var opt = document.createElement("option");
opt.value = pais[j];
opt.innerHTML = pais[j];
comboCiud.appendChild(opt);
}
},
cambiaPais = function(contVal){
var cont = continentes[contVal];
comboPais.innerHTML = null;
for (var i in cont){
var opt = document.createElement("option");
opt.value = i;
opt.innerHTML = i;
comboPais.appendChild(opt);
}
cambiaCiudad(contVal, comboPais.value);
};
comboCont.addEventListener("change", function(){
cambiaPais(this.value);
}, false);
comboPais.addEventListener("change", function(){
cambiaCiudad(comboCont.value, this.value);
}, false);
cambiaPais(comboCont.value);
<section>
Continente:
<select id = "continente">
<option value = "America">América</option>
<option value = "Europa">Europa</option>
</select>
</section>
<section>
País: <select id = "pais"></select>
</section>
<section>
Ciudad: <select id = "ciudad"></select>
</section>