2013-03-14 93 views
4

这个脚本在Firefox或Chrome工作,但只得到在IE9一半这是我们网站上的浏览器。对象不支持属性或方法“追加”在IE9

我得到的问题是它抛出这个错误。

SCRIPT438:对象不支持属性或方法 '追加' calc_ajax.js 26行字符21

在这条线:item.append(联系);

和im卡住了原因。任何帮助,将不胜感激。

$(document).ready(function(){ 
$('.first a.btn').click(function(){ 
    $('.first a.active').removeClass('active'); 
    $(this).addClass('active'); 
    $('.second .title').addClass('active'); 

    var id = $(this).data('cat-id'); 

    var wrap = $('<div>'); 

    $.ajax({ 
     url: script_url, 
     type: "post", 
     data: {"cat": id}, 
     dataType: "json" 
    }).success(function(result){ 
     if(result.status == "ok"){ 
      $.each(result.data, function(i, elem){ 
       item = $("<div class='body-area'>").append($("<img src='" + elem.image + "'>")); 
       link = $("<a href='#results' class='btn'>"); 
       link.text(elem.name); 
       link.data('subcat-id', elem.id); 
       item.append(link); 

       wrap.append(item); 

      }); 
      $('.second .body').html(wrap).slideDown('fast'); 
     } 
    }); 
}); 

$('.second a.btn').live('click', function(){ 
    $('.second .body-area.active').removeClass('active'); 
    $(this).parent().addClass('active'); 

    var sub_id = $(this).data('subcat-id');   

    $.ajax({ 
     url: script_url, 
     type: "post", 
     data: {"subcat": sub_id}, 
     dataType: "json" 
    }).success(function(result){ 
     if(result.status == "ok"){ 
      $('.third .title').text(result.data.title); 
      $('.third .body').html(result.data.body); 
      $('.third').slideDown('fast'); 
     } 
    });   
}); 

});

+0

你不声明'item'也不'link'的问题,所以他们是全球性的,可能会引发问题,IE很特别,但不知道是否这是问题... – elclanrs 2013-03-14 09:51:18

+0

有关如何做到这一点的更多信息,因为这段代码不是由我写的,而且我对js的知识很少,不幸的是,对不起,听起来像一个愚蠢的屁股。 – JoeLee 2013-03-14 09:53:19

+0

@JoeLee是谁写的,应该问这些问题 – 2013-03-14 10:03:22

回答

9

window.item是Internet Explorer中一种特殊的方法因为你贴的代码没有声明一个局部变量item它试图重新分配IE中的一个本地方法。 IE不允许重新分配,所以你没有真正得到你期望的item变量中的jQuery对象,因此append方法不可用。

修复代码的最简单方法是在使用item变量之前添加var。我扔在一起的jsfiddle显示它如何修复在IE http://jsfiddle.net/httyY/

1

尝试:

$.each(result.data, function(i, elem){ 
    var item = $("<div class='body-area'>").append($("<img src='" + elem.image + "'>")); 
    var link = $("<a />", {"href" :"#results", "class": "btn"}); 
    link.text(elem.name); 
    link.data('subcat-id', elem.id); 
    item.append(link); 
    wrap.append(item);  
}); 
+0

非常感谢你为苏德赫,非常感谢的人: D – JoeLee 2013-03-14 10:10:23

+0

不客气...... :) – 2013-03-14 10:13:16

相关问题