IE8中json上循环的Javascript
我收到了一些类似于以下内容的json(存储在var响应中): 对其进行迭代,并在使用class.model命名的css ul标记内的列表中填充名称IE8中json上循环的Javascript,javascript,jquery,css,json,internet-explorer-8,Javascript,Jquery,Css,Json,Internet Explorer 8,我收到了一些类似于以下内容的json(存储在var响应中): 对其进行迭代,并在使用class.model命名的css ul标记内的列表中填充名称 我使用的是一个简单的foreach循环。这在Firefox和IE9(以及更高版本)中看起来是完全正常的。但在IE中,它不起作用。 (在FF工作,但不是IE8) 功能(响应){ response.forEach(函数(模型){ $('.model').append(''+model['name']+''); }); 这就是为什么我使用jQuery
我使用的是一个简单的foreach循环。这在Firefox和IE9(以及更高版本)中看起来是完全正常的。但在IE中,它不起作用。
(在FF工作,但不是IE8)
功能(响应){
response.forEach(函数(模型){
$('.model').append(''+model['name']+' ');
});
这就是为什么我使用jQuery v1.8.2尝试了以下选项,但没有成功:
(在FF工作,但不是IE8)
jQuery.each(响应、函数(索引、模型){
$('.model').append(''+model['name']+' ');
});
同样,使用“地图”也不起作用
(在FF工作,但不是IE8)
var a=jQuery.map(响应、函数(模型){
$('.model').append(''+model['name']+' ');
});
根据我的观点,最简单的方法(也是最直接的方法)是使用for循环,它是
(两种模式均不适用:FF和IE8)
var模型;
对于(变量i=0;i'+model['name']+'');
});
也不工作
for(var model in response) {
$('.model').append('<li>' + model['name'] +'</li>');
});
for(var模型响应){
$('.model').append(''+model['name']+' ');
});
有人有什么想法吗?您的JSON看起来像一个对象数组。使用model.name而不是model[name]解决了这个问题!这是一个非常糟糕的组合:forEach不工作,但是$。每个都工作了-但是没有一个在IE中本地工作(在FF中是这样),因为我是通过必须发生的交叉脚本获取JSON的(根据IE8标准)使用相同的协议。本地是file://和http://上传到我的Web空间,这两个版本匹配。您使用的是哪个jQuery版本?console中有错误吗?我猜您的问题在于附加的HTML,而不是在数组中迭代的方式。是
.model
a
?它工作正常吗IE8上的e:你能给我们看看你的ajax代码吗?@Kai go在IE8上,应该会像预期的那样工作:OP使用的是model['name']
,这是fineOops。没有注意到名字周围的引号。这是我的责任。事后看来,这可能是昨晚伏特加酒的副作用。
<ul class="model"></ul>
function(response) {
response.forEach(function (model) {
$('.model').append('<li>' + model['name'] +'</li>');
});
jQuery.each(response, function(index, model){
$('.model').append('<li>' + model['name'] +'</li>');
});
var a = jQuery.map(response, function(model){
$('.model').append('<li>' + model['name'] +'</li>');
});
var model;
for(var i = 0; i < response.length; i++) {
model = reponse[i];
$('.model').append('<li>' + model['name'] +'</li>');
});
for(var model in response) {
$('.model').append('<li>' + model['name'] +'</li>');
});