>  기사  >  웹 프론트엔드  >  자바스크립트 네이티브 코드로 구현한 단순 도, 시, 군 3단계 연계 기능 사례 연구

자바스크립트 네이티브 코드로 구현한 단순 도, 시, 군 3단계 연계 기능 사례 연구

黄舟
黄舟원래의
2017-05-28 10:25:151445검색

이 글에서는 주로 네이티브 JavaScript로 구현된 도, 시, 군의 단순 3단계 연결 기능을 소개하며, 자바스크립트 이벤트응답 및 구현을 포함하는 완전한 예제 형태로 자바스크립트 연결 메뉴의 구현 방법을 분석합니다. 페이지 요소의 동적 작동과 관련된 기술. 필요한 친구들이 참고할 수 있습니다

이 글에서는 네이티브 JavaScript로 구현된 간단한 도, 시, 군 3단계 연결 기능을 설명합니다. 참고하실 수 있도록 자세한 내용은 다음과 같습니다.

양식 작성 시 3단계 연결은 필수입니다. 예를 들어 최근에는 네이티브 JavaScript를 보고 시작하고 있습니다. 기본부터 개선하기 위해 앞으로는

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>三级联动菜单</title>
<style>
select {
font-family: "萝莉体 第二版";
}
.hide {
display: none;
}
</style>
</head>
<body>
<p>
<select id="province">
<option>-请选择-</option>
</select>
<select id="city" class="hide">
<option>-请选择-</option>
</select>
<select id="area" class="hide">
<option>-请选择-</option>
</select>
</p>
<script>
var provinceList = [&#39;北京市&#39;, &#39;河北省&#39;, &#39;浙江省&#39;];
var cityList = [[&#39;东城区&#39;, &#39;西城区&#39;, &#39;海淀区&#39;], [&#39;廊坊市&#39;, &#39;唐山市&#39;, &#39;石家庄市&#39;, &#39;承德市&#39;], [&#39;杭州市&#39;, &#39;温州市&#39;, &#39;宁波市&#39;, &#39;嘉兴市&#39;, &#39;绍兴市&#39;]];
var areasList = [
[
[&#39;东城区1&#39;, &#39;东城区2&#39;, &#39;东城区3&#39;],
[&#39;西城区1&#39;, &#39;西城区2&#39;, &#39;西城区3&#39;],
[&#39;海淀区1&#39;, &#39;海淀区2&#39;, &#39;海淀区3&#39;]
],
[
[&#39;廊坊市1&#39;, &#39;廊坊市2&#39;, &#39;廊坊市3&#39;, &#39;廊坊市4&#39;],
[&#39;唐山市1&#39;, &#39;唐山市2&#39;, &#39;唐山市3&#39;, &#39;唐山市4&#39;],
[&#39;石家庄市1&#39;, &#39;石家庄市2&#39;, &#39;石家庄市3&#39;, &#39;石家庄市4&#39;],
[&#39;承德市1&#39;, &#39;承德市2&#39;, &#39;承德市3&#39;, &#39;承德市4&#39;]
],
[
[&#39;杭州市1&#39;, &#39;杭州市2&#39;, &#39;杭州市3&#39;, &#39;杭州市4&#39;, &#39;杭州市5&#39;],
[&#39;温州市1&#39;, &#39;温州市2&#39;, &#39;温州市3&#39;, &#39;温州市4&#39;, &#39;温州市5&#39;],
[&#39;宁波市1&#39;, &#39;宁波市2&#39;, &#39;宁波市3&#39;, &#39;宁波市4&#39;, &#39;宁波市5&#39;],
[&#39;嘉兴市1&#39;, &#39;嘉兴市2&#39;, &#39;嘉兴市3&#39;, &#39;嘉兴市4&#39;, &#39;嘉兴市5&#39;],
[&#39;绍兴市1&#39;, &#39;绍兴市2&#39;, &#39;绍兴市3&#39;, &#39;绍兴市4&#39;, &#39;绍兴市5&#39;]
]
];
//1.获取元素
var province = document.getElementById("province");
var city = document.getElementById("city");
var area = document.getElementById("area");
//2.给省的选择框赋值,
// ----使用自执行函数,避免污染全局变量-----
(function () {
for (var i = 0; i < provinceList.length; i++) {
var myOption = document.createElement("option");
myOption.innerHTML = provinceList[i];
//设置value值
myOption.value = i;
province.appendChild(myOption);
}
})();
//3.设置选择省的行为函数
province.onchange = function (e) {
city.style.display = "inline-block"; //设置第二个出现
while (city.children.length > 1) { //当省设置为“请选择”时,移除子元素
city.removeChild(city.lastElementChild);
}
while (area.children.length > 1) { //当市设置为“请选择”时,移除子元素
area.removeChild(area.lastElementChild);
}
if (cityList[this.value]) {//当设置为请选择时不显示列表
for (var i = 0; i < cityList[this.value].length; i++) { //添加市的列表
var myOption = document.createElement("option");
myOption.innerHTML = cityList[this.value][i];
//设置value值
myOption.value = i;
city.appendChild(myOption);
}
}
};
//4.设置选择市的行为函数
city.onchange = function (e) {
area.style.display = "inline-block"; //设置第二个出现
while (area.children.length > 1) { //当市设置为“请选择”时,移除子元素
area.removeChild(area.lastElementChild);
}
if (areasList[province.value][this.value]) {//当设置为"请选择"时不显示列表
for (var i = 0; i < areasList[province.value][this.value].length; i++) { //添加市的列表
var myOption = document.createElement("option");
myOption.innerHTML = areasList[province.value][this.value][i];
area.appendChild(myOption);
}
}
}
</script>
</body>
</html>

jquery

버전을 다음과 같이 작성하겠습니다.

위 내용은 자바스크립트 네이티브 코드로 구현한 단순 도, 시, 군 3단계 연계 기능 사례 연구의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.