2016-08-31 22 views
2

我從w3school代碼裏工作,並修改它適合我的需要,我想出這個代碼平變化沒有我的函數呈現JSON解析

<div id="city"></div> 
      <p id="demo"></p> 
      <div id="province"></div> 
      <script> 
      (function() { 
      var xmlhttp = new XMLHttpRequest(); 
      var url = "http://getpark.net/city/read"; 

      xmlhttp.onreadystatechange=function() { 
       if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
        myFunction(xmlhttp.responseText); 
       } 
      } 
      xmlhttp.open("GET", url, true); 
      xmlhttp.send(); 

      function myFunction(response) { 
       var arr = JSON.parse(response); 
       var i; 
       var out = "<div class='row'>" + 
          "<div class='large-12 columns'>" + 
          "<label>City</label>" + 
          "<select id='select' name='city' onchange='change()'>"; 

       for(i = 0; i < arr.length; i++) { 
        out += "<option value='" + 
        arr[i].cityId + 
        "'>" + 
        arr[i].cityName + 
        "</option>"; 
       } 
       out += "</select>" + 
         "</div>" + 
        "</div>"; 
       document.getElementById("city").innerHTML = out; 
      } 

      function change() { 
       var x = document.getElementById("select").value; 
       document.getElementById("demo").innerHTML = "You selected: " + x; 
      } 

      })(); 

偏偏在那個改變電平變化()函數沒有解決?我從w3school看到它。 http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_onchange 謝謝。

回答

1

您的更改功能應該位於全局範圍內。您只需在腳本標記之後直接移動該函數的聲明即可。

<script> 
function change() { 
    var x = document.getElementById("select").value; 
    document.getElementById("demo").innerHTML = "You selected: " + x; 
} 
(function() { 
[..] 
+1

這完全正確..我已經嘗試這個幾分鐘前,你的答案是與我的解決方案一樣謝謝.. @邁克爾沃爾特 – Faisal