IE8中json上循环的Javascript

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

我收到了一些类似于以下内容的json(存储在var响应中):

对其进行迭代,并在使用class.model命名的css ul标记内的列表中填充名称

我使用的是一个简单的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>');
            });