Heim  >  Artikel  >  Web-Frontend  >  JQuery-Methode zum Abrufen von JSON-Daten, um Cascading_JQuery für Provinz und Stadt zu realisieren

JQuery-Methode zum Abrufen von JSON-Daten, um Cascading_JQuery für Provinz und Stadt zu realisieren

WBOY
WBOYOriginal
2016-05-16 16:17:121772Durchsuche

Das Beispiel in diesem Artikel beschreibt die Methode des JQuery-Abrufs von JSON-Daten, um eine Kaskadierung von Provinzen und Städten zu erreichen. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Die Verwendung von jQuery Mobile als Framework für die Erstellung mobiler Websites erfordert die Realisierung der Funktion der Kaskadierung von Provinzen und Städten. Der spezifische Code lautet wie folgt (es gibt noch Bereiche, die optimiert werden müssen):

Html-Code:

In jQuery Mobile gibt es ein Eingabelistenattribut, gefolgt vom Tag 9d6d8dbb2ea8c7004513730b9c6a2e564afa15d3069109ac30911f04c56f3338 Äquivalent dazu, dass die Eingabe vorhanden ist. Für die Funktion der Dropdown-Liste muss der Name der Eingabeliste natürlich mit der ID in der Datenliste übereinstimmen.

<input id="province" list="prvlist" placeholder="省/自治区/直辖市" onblur="changeProvince();"> 
  <datalist id="prvlist"> 
 
  </datalist> 
  <input  id="city" list="citylist" placeholder="市" onblur="changeCity();"> 
  <datalist id="citylist"> 
 
  </datalist> 
  <input  id="area" list="arealist" placeholder="区"> 
  <datalist id="arealist"> 
 
</datalist>

JS-Code:

JS-Code, Hauptfunktionen

1. JSON-Daten extrahieren und an die Provinz-Dropdown-Liste binden

2. Nachdem die Provinzeingabe ausgewählt wurde, wird die Gemeindeliste automatisch gebunden

3. Die Dropdown-Liste auf Bezirksebene ist die gleiche wie auf Stadtebene

<script> 
    $(function () { 
      getProvince();  //页面打开后,省级下拉列表自动绑定 
    }) 
    //获取省份 
    function getProvince() { 
      var Aid; 
      var Afather; 
      $.get('area_json0.txt', {}, function (data) { 
        for (var i = 0; i < data.length; i++) { 
          if (data[i].fatherId == 0) { 
            Afather += '<option id=" ' + data[i].id + '" value="' + data[i].name + '">'; 
          } 
        } 
        $("#prvlist").append(Afather); 
      } , 'json'); 
    } 
 
    function changeProvince(){ 
      var city; 
      var prv_val=$("#province").val(); 
      getJson(prv_val); 
    } 
    function changeCity(){ 
      var city_val=$("#city").val(); 
      getJsonArea(city_val); 
    } 
    function getJson(Name){ 
      var cityID; 
      $.get('area_json0.txt', {}, function (data) { 
        for (var i = 0; i < data.length; i++) { 
          if (data[i].name == Name) { 
            cityID=data[i].id; 
          } 
        } 
        setCity(cityID); 
      } , 'json'); 
    } 
    function setCity(val){ 
      var Acity; 
      var $listcity=$("#citylist"); 
      $.get('area_json0.txt', {}, function (data) { 
        for (var n = 0; n < data.length; n++) { 
          if (data[n].fatherId == val) { 
            alert(data[n].id); 
            Acity += '<option id=" ' + data[n].id + '" value="' + data[n].name + '">'; 
          } 
        } 
        $listcity.append(Acity); 
      } , 'json'); 
   } 
    function getJsonArea(Name){ 
      var areaID; 
      $.get('area_json0.txt', {}, function (data) { 
        for (var i = 0; i < data.length; i++) { 
          if (data[i].name == Name) { 
            areaID=data[i].id; 
          } 
        } 
        setArea(areaID); 
      } , 'json'); 
    } 
    function setArea(Aval){ 
      var Aarea; 
      var $listarea=$("#arealist"); 
      $.get('area_json0.txt', {}, function (data) { 
        for (var m = 0; m < data.length; m++) { 
          if (data[m].fatherId == Aval) { 
            alert(data[n].id); 
            Aarea += '<option id=" ' + data[m].id + '" value="' + data[m].name + '">'; 
          } 
        } 
        $listarea.append(Aarea); 
      } , 'json'); 
    } 
</script>

Der Code sollte weiter optimiert werden, also speichern Sie den Code vorerst.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn