Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript onchange在呈现json解析的函数中不起作用_Javascript_Html_Json - Fatal编程技术网

Javascript onchange在呈现json解析的函数中不起作用

Javascript onchange在呈现json解析的函数中不起作用,javascript,html,json,Javascript,Html,Json,我从w3school获得了这段代码,并对其进行了修改以满足我的需要,我提出了这段代码 <div id="city"></div> <p id="demo"></p> <div id="province"></div> <script> (function () { var xmlhttp = new XMLHt

我从w3school获得了这段代码,并对其进行了修改以满足我的需要,我提出了这段代码

<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;
            }

          })();
但是为什么onchange-in-change函数不起作用呢?我在学校看到的。
谢谢。

您的更改功能应该在全局范围内。只需将函数声明直接移动到脚本标记之后

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

这完全正确。。我几分钟前已经尝试过了,你的答案与我的解决方案相同谢谢@迈克尔·沃尔特