jQuery 實現(xiàn)省市區(qū)三級聯(lián)動

引言

項目開發(fā)中,經(jīng)常會遇到城市三級聯(lián)動的需求,這里總結(jié)一下使用 jQuery 方式實現(xiàn)三級聯(lián)動

首先,城市數(shù)據(jù)有可能需要放在前端代碼中,所以需要把數(shù)據(jù)單獨放到一個 js 文件中,然后在頁面引入

1.引入 jQuery 和 城市數(shù)據(jù)文件

<!--  引入 jQuery -->
<script src="https://probe.bjmantis.net/chat/jquery-1.12.4.min.js"></script>
<!--  引入城市數(shù)據(jù) -->
<script type="application/javascript" src="provinceData.js"></script>

2.頁面布局

<div class="list">
  <select name="" id="selProvince">
    <option value="">請選擇</option>
  </select>
  <select name="" id="selCity">
    <option value="">請選擇</option>
  </select>
  <select name="" id="selCountry">
    <option value="">請選擇</option>
  </select>
</div>

3. js 邏輯

$(function () {
    // 使用引入的數(shù)據(jù)
    var provinceList = provinceData
    var iNum1
    var iNum2
    console.log(provinceList)
    // 城市及聯(lián)
    for (var i = 0; i < provinceList.length; i++) {
      $('#selProvince').append('<option>' + provinceList[i].name + '</option>')
    }
    $('#selProvince').change(function () {
      $('#selCity').children().not(':eq(0)').remove()
      iNum1 = $(this).children('option:selected').index()
      var aaCity = provinceList[iNum1 - 1].children
      for (var j = 0; j < aaCity.length; j++) {
        $('#selCity').append('<option>' + aaCity[j].name + '</option>')
      }
    })
    $('#selCity').change(function () {
      $('#selCountry').children().not(':eq(0)').remove()
      iNum2 = $(this).children('option:selected').index()
      var aaCountry = provinceList[iNum1 - 1].children[iNum2 - 1].children
      for (var k = 0; k < aaCountry.length; k++) {
        $('#selCountry').append('<option>' + aaCountry[k].name + '</option>')
      }
    })
  })

4.js 數(shù)據(jù)文件

文件地址以及完整代碼:城市數(shù)據(jù)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容