【发布时间】:2015-11-28 08:25:11
【问题描述】:
我已经尝试了其他线程的解决方案,但我仍然不知道问题是什么。如下所示,如果您将 json 数据键入 html。它可以正常运行。数字将变为红色。但如果我将数据放入 JSON 文件。代码无法将 JSON 文件获取到数组中。即使我将 JSON 文件放在同一个文件夹中,它也会失败。感谢您阅读我的帖子。
{ //holiday.json
"hd": [{
"id": "y2015m12d25",
"desc": "Xmas"
}, {
"id": "y2015m12d26",
"desc": "Xmas"
}, {
"id": "y2016m1d1",
"desc": "New Year"
}
]
}
<html>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<table border="1">
<TR>
<td id="y2015m12d22">22</td>
<td id="y2015m12d23">23</td>
<td id="y2015m12d24">24</td>
<td id="y2015m12d25">25</td>
<td id="y2015m12d26">26</td>
<td id="y2015m12d27">27</td>
<td id="y2015m12d28">28</td>
<td id="y2015m12d29">29</td>
<td id="y2015m12d30">30</td>
</TR>
</table>
<script>
$(document).ready(function() {
var myJSONObject;
$.getJSON('http://khchan.byethost18.com/holiday.json')
.done(function(data) {
//var myJSONObject = JSON.parse(data);
myJSONObject = data;
});
/* var myJSONObject = {"hd":[
{"id": "y2015m12d25","desc": "Xmas"},
{"id": "y2015m12d26","desc": "Xmas"},
{"id": "y2016m1d1","desc": "New Year"}
]
}; */
$.each(myJSONObject.hd, function(i, index) {
$("#" + myJSONObject.hd[i].id).css("color", "red");
});
});
</script>
</html>
【问题讨论】:
-
最简单的方法:将
$.each方法移到.done中,这是一种异步方法,您不能在它之外使用响应。
标签: javascript arrays json file parsing