JavaScript開(kāi)発3層連攜コアJS
この章では、最も重要な JS コードを紹介します。詳しい説明は省き、まずコードを見(jiàn)てみましょう:
<script> //聲明省 var oProc = ["安徽","上海","山東"]; //直接聲明array //聲明市 var oCity = [ ["合肥","淮南","蕪湖"], ["浦東","閔行","浦西"], ["濟(jì)南","青島","棗莊"] ]; //聲明區(qū) var oDist = [ [ ["政務(wù)區(qū)","廬陽(yáng)區(qū)","蜀山區(qū)"], ["田家庵區(qū)","大通區(qū)","九龍崗區(qū)"], ["鏡湖區(qū)","鳩江區(qū)","三山區(qū)"] ], [ ["浦東1","浦東2","浦東3"], ["閔行1","閔行2","閔行3"], ["浦西1","浦西","浦西3"] ], [ ["歷下區(qū)","天橋區(qū)","長(zhǎng)清區(qū)"], ["市南區(qū)","市北區(qū)","李滄區(qū)"], ["薛城區(qū)","市中區(qū)","嶧城區(qū)"] ] ]; var oproc = document.getElementById("proc"); var ocity = document.getElementById("city"); var odist = document.getElementById("dist"); window.onload = function(){ for(var i =0;i<oProc.length;i++){ //創(chuàng)建元素節(jié)點(diǎn) var oOpt = document.createElement("option"); //創(chuàng)建文本節(jié)點(diǎn) var oTxt = document.createTextNode(oProc[i]); oOpt.appendChild(oTxt); oproc.appendChild(oOpt); } }; function showCity(){ if(oproc.value=="-1"){ ocity.options.length = 1; odist.options.length = 1; }else{ ocity.options.length = 1; odist.options.length = 1; var num = oproc.options.selectedIndex; //console.log(num); 測(cè)試是否成功 for(var i =0;i<oCity[num-1].length;i++){ var oOpt = document.createElement("option"); var oTxt = document.createTextNode(oCity[num-1][i]); oOpt.appendChild(oTxt); ocity.appendChild(oOpt); } } } function showDist(){ if(ocity.value=='-1'){ odist.options.length = 1 }else{ odist.options.length = 1; var numPro = oproc.options.selectedIndex; var numCity = ocity.options.selectedIndex; for(var i=0;i<oDist[numPro-1][numCity-1].length;i++){ var oOpt = document.createElement("option"); var oTxt = document.createTextNode(oDist[numPro-1][numCity-1][i]); oOpt.appendChild(oTxt); odist.appendChild(oOpt); } } } </script>
for(var i =0;i
console.log(num) を使用してテストします。得られた結(jié)果は 1、2、3 で、配列の開(kāi)始値は 0 であるため、1 を減算する必要があります。たとえば、安徽省を選択します。安徽省は配列內(nèi)で最初にランクされますが、開(kāi)始添字は 0 です。
selectedIndex を使用して取得する値は 1 です。したがって、安徽省を取得したい場(chǎng)合は、1 を減算することしかできません。