JavaScript 개발 3단계 연계 코어 JS
이 장에서는 가장 중요한 JS 코드를 소개합니다. 추가 설명 없이 먼저 코드를 살펴보겠습니다.
<script>
//声明省
var oProc = ["安徽","上海","山东"]; //直接声明array
//声明市
var oCity = [
["合肥","淮南","芜湖"],
["浦东","闵行","浦西"],
["济南","青岛","枣庄"]
];
//声明区
var oDist = [
[
["政务区","庐阳区","蜀山区"],
["田家庵区","大通区","九龙岗区"],
["镜湖区","鸠江区","三山区"]
],
[
["浦东1","浦东2","浦东3"],
["闵行1","闵行2","闵行3"],
["浦西1","浦西","浦西3"]
],
[
["历下区","天桥区","长清区"],
["市南区","市北区","李沧区"],
["薛城区","市中区","峄城区"]
]
];
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++){
//创建元素节点
var oOpt = document.createElement("option");
//创建文本节点
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); 测试是否成功
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<oCity[num-1].length;i++) 이 부분은 약간 복잡합니다. 이해가 안 될 수도 있습니다. [num-1]이 1을 빼야 하는 이유는 무엇인가요?
console.log(num)을 사용하여 테스트한 결과는 1, 2, 3이고 배열의 시작 값은 0이므로 1을 빼야 합니다. 예를 들어 Anhui를 선택하면 배열에서 1위를 차지하지만 시작 첨자는 0입니다.
selectedIndex를 사용하여 얻는 값은 1입니다. 따라서 Anhui를 얻으려면 먼저 1만 빼면 됩니다.
새로운 파일
<script>
//声明省
var oProc = ["安徽","上海","山东"]; //直接声明array
//声明市
var oCity = [
["合肥","淮南","芜湖"],
["浦东","闵行","浦西"],
["济南","青岛","枣庄"]
];
//声明区
var oDist = [
[
["政务区","庐阳区","蜀山区"],
["田家庵区","大通区","九龙岗区"],
["镜湖区","鸠江区","三山区"]
],
[
["浦东1","浦东2","浦东3"],
["闵行1","闵行2","闵行3"],
["浦西1","浦西","浦西3"]
],
[
["历下区","天桥区","长清区"],
["市南区","市北区","李沧区"],
["薛城区","市中区","峄城区"]
]
];
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++){
//创建元素节点
var oOpt = document.createElement("option");
//创建文本节点
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); 测试是否成功
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>
시사
Clear
- 코스 추천
- 코스웨어 다운로드
현재 코스웨어를 다운로드할 수 없습니다. 현재 직원들이 정리하고 있습니다. 앞으로도 본 강좌에 많은 관심 부탁드립니다~
이 강좌를 시청한 학생들도 학습하고 있습니다.
PHP로 사업을 시작하는 방법에 대해 간단히 이야기해 보겠습니다.
웹 프론트 엔드 개발에 대한 빠른 소개
민망한 물건 백과사전 사이트를 모방한 Mini 버전 MVC 프레임워크의 대규모 실용 Tianlongbabu 개발
PHP 실용 개발 시작하기: 빠른 PHP 생성 [중소기업 포럼]
로그인 인증 및 클래식 게시판
컴퓨터 네트워크 지식 수집
빠른 시작 Node.JS 정식 버전
당신을 가장 잘 이해하는 프론트엔드 강좌: HTML5/CSS3/ES6/NPM/Vue/...[원본]
자신만의 PHP MVC 프레임워크 작성(깊이 있는 40개 장/자세한 내용/초보자가 발전하려면 읽어야 함)
















