Jquery+Ajax+xml實現中國地區選擇三級聯動菜單效果(推薦),jqueryajax

來源:互聯網
上載者:User

Jquery+Ajax+xml實現中國地區選擇三級聯動菜單效果(推薦),jqueryajax

本文主要介紹使用 Jquery+Ajax+xml,首先需要一個包含我國所有地圖資訊的xml文檔。

此處選用的xml文檔(共1000多行)主要結構如下:

<?xml version="1.0" encoding="utf-8"?><area Country="China"> <province ID="1" provinceID="110000" province="北京市">  <City CityID="110100" City="市轄區">   <Piecearea PieceareaID="110101" Piecearea="東城區" />   <Piecearea PieceareaID="110102" Piecearea="西城區" />   <Piecearea PieceareaID="110103" Piecearea="崇文區" />   <Piecearea PieceareaID="110104" Piecearea="宣武區" />   <Piecearea PieceareaID="110105" Piecearea="朝陽區" />   <Piecearea PieceareaID="110106" Piecearea="丰台區" />   <Piecearea PieceareaID="110107" Piecearea="石景山區" />   <Piecearea PieceareaID="110108" Piecearea="海澱區" />   <Piecearea PieceareaID="110109" Piecearea="門頭溝區" />   <Piecearea PieceareaID="110111" Piecearea="房山區" />   <Piecearea PieceareaID="110112" Piecearea="通州區" />   <Piecearea PieceareaID="110113" Piecearea="順義區" />   <Piecearea PieceareaID="110114" Piecearea="昌平區" />   <Piecearea PieceareaID="110115" Piecearea="大興區" />   <Piecearea PieceareaID="110116" Piecearea="懷柔區" />   <Piecearea PieceareaID="110117" Piecearea="平穀區" />  </City><province>

製作對應的表單,根據設定選擇省/市的動作:

<h2>地區三級聯動菜單</h2>  省:<select id="province" onchange="showcity()"><option value="0">-請選擇-</option></select>  市:<select id="city" onchange="showdistrict()"><option value="0">-請選擇-</option></select>  地區:<select id="district"><option value="0">-請選擇-</option></select>

以下是JS程式碼

//聲明一個全域變數,用於儲存第一次請求的xml資訊,避免後續多次頻繁請求xml    var xmldom =null;    //擷取並顯示省份資訊    function showprovince(){      //使用ajax去伺服器獲得xml檔案裡面的省份資訊      $.ajax({        url:'./ChinaArea.xml',        //data:        dataType:'xml',//相當於調用responseXML        type:'get',        success:function(msg){          //將返回的xml資訊賦予xmldom          xmldom = msg;          //獲得province 元素節點對象          var prov = $(msg).find('province');          //遍曆省份資訊          prov.each(function(k,v){            var nm = $(this).attr('province');            var id = $(this).attr('provinceID');            //追加到指定的節點            $('#province').append("<option value="+id+">"+nm+"</option>");          });        }      });    }    //網頁載入顯示省份資訊      $(function(){      showprovince();    });    function showcity(){      //擷取 省份 的id      var pid = $('#province option:selected').val();      //根據xmldom資訊 找到指定的省份節點      var xml_province = $(xmldom).find('province[provinceID='+pid+']');      // 擷取對應所有縣市節點      var city = $(xml_province).find('City');      //在遍曆追加前,先清空此前已經顯示的資訊      $('#city').empty();      $('#city').append('<option value="0">-請選擇-</option>');      //遍曆追加縣市      city.each(function(k,v){        var nm = $(this).attr('City');        var id = $(this).attr('CityID');        $('#city').append('<option value='+id+'>'+nm+'</option>');      });    }    //以下函數的邏輯與showcity()的邏輯一致    function showdistrict(){      //擷取 縣市 的id      var cid = $('#city option:selected').val();      //根據xmldom資訊 找到指定的縣市節點      var xml_city = $(xmldom).find('City[CityID='+cid+']');      // 擷取對應所有地區節點      var district = $(xml_city).find('Piecearea');      $('#district').empty();      $('#district').append('<option value="0">-請選擇-</option>');      district.each(function(k,v){        var nm = $(this).attr('Piecearea');        var id = $(this).attr('PieceareaID');        $('#district').append('<option value='+id+'>'+nm+'</option>');      });    }

以上這篇Jquery+Ajax+xml實現中國地區選擇三級聯動菜單效果(推薦)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援幫客之家。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.