Javascript onchange在呈现json解析的函数中不起作用
我从w3school获得了这段代码,并对其进行了修改以满足我的需要,我提出了这段代码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
<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 () {
[..]
这完全正确。。我几分钟前已经尝试过了,你的答案与我的解决方案相同谢谢@迈克尔·沃尔特