1. 程式人生 > 程式設計 >JavaScript實現網頁下拉列表的省市聯動

JavaScript實現網頁下拉列表的省市聯動

大家好,今天我和大家分享中下拉列表的省市聯動。在我們平常填寫一些資訊時就會有省市聯動,就是在第一個下拉列表中選擇我們所在的省,後面一個下拉列表顯示該省的所有城市。

既然是省市聯動,我們就不能把資料直接寫到網頁上,我們應該通過第一個下拉列表的省動態生成該省的所有城市。我們可以先定義一個ON物件表示省,在物件中定義一個數組儲存一個省中的所有城市(這裡的城市也是JSON物件),最後用陣列儲存所有的省。我們可以利用在網頁上面新增選項option。聯動這塊我們可以為第一個下拉列表新增一個change事件,當它改變時後一個下拉列表的就更新為當前省的所有城市。

首先我們需要省市的資料:就是一個包含所有省的陣列,而且每個省中有一個城市陣列。這裡我是寫北京為例子。

var data = [
{
        "province": "北京","city": [
            {
                "cname": "北京","code": "101010100"
            },{
                "cname": "朝陽","code": "101010300"
            },{
                "cname": "順義","code": "101010400"
            },{
                "cname": "懷柔","code": "101010500"
            },{
                "cname": "通州",www.cppcns.com
"code": "101010600" },... ] },....]

然後我們先在頁面上顯示兩個下拉列表

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8"&gFvKeojot;
 www.cppcns.com   <title>所在地區</title>
</head>
<body>
<select id="province"></select>省
<select id="city"></select>市
<script src="js/data.js"></script>
<script src="js/mycity.js"></script>
</body>
</html>

對應的Script的程式碼:先對陣列進行遍歷得到的是所有的省,再對每個省遍歷就能改省的所有城市。通過建立和新增option節點在頁面上顯示。

// 對資料進行遍歷顯示所有省
data.forEach((p,i) => {
    //建立一個option節點
    let option = document.createElement('option');
    //設定option節點文字值
    option.textContent = p.province;
    //設定option節點的value值
    option.value = i;
    //向id為province的元素中追加了一個子節點option
    $('province').appendChild(option);
    //預設在下拉列表載入城市
    chooseCity(0);
})
//為向id為province的元素新增‘change'事件
$('province').addEventListener('change',function () {

/* 在下拉列表中載入城市*/
    chooseCity(this.value);
})
//函式:獲取對應省的所有城市
function chooseCity(index) {
    //通過索引獲取對應的省
    let p = data[index];
    //清除當前的城市資訊
    $('city').length = 0;
    //獲取對應省的所有城市
    let cities = p.city;
    //對所有城市進行遍歷顯示
    cities.forEach(c => {
        //建立一個option1節點
        let option1 = document.createElement('option');
        //設定option1節點文字值
        option1.textContent = c.cname;
        //向id為city的元素中追加了一個子節點option1
        $('city').appendChild(option1);
    })
}
//函式:通過id獲取元素
function $(id) {
    return document.getElementById(id);
}

JavaScript實現網頁下拉列表的省市聯動

JavaScript實現網頁下拉列表的省市聯動

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。