我尝试使用JSON填充列表项但它似乎无法正常工作。有人可以证明我出错的地方。
<ul style='list-style: none;' id='listSubjet'></ul>
var val;
$.ajax({
url: 'subjects.json'
}).done(function(d) {
val = d;
$.each(val, function(i, su) {
$('<li data-action = "' + su[0] + '">' + su[1] + '</li>').appendTo('#listSubjet');
});
});
JSON:
[
[ "Science", "Zoology"],
[ "Science", "Botany"],
[ "Maths", "Geometry"]
]
修改
error: function(msg){
console.log('error:', msg)
}
答案 0 :(得分:0)
问题可能来自服务器,如果您的服务器使用内容类型text/plain
进行响应,则val = d;
将是String而不是Array。如果您可以将响应的内容类型更改为application/json
或测试它是否为字符串,如果是,则JSON.parse
该字符串将其转换为数组。
if(typeof d === 'string'){
val = JSON.parse(d);
}
另外你应该把它添加到你的ajax: dataType:&#34; json&#34;, 并且只在success callback
处理您的回复