2012-01-27 38 views
0

解析jQuery的阿贾克斯返回HTML数据我有一个HTML出把在AJAX调用这样无法在IE

<div> 
    <div id="one"></div> 
    <div id="two"></div> 
    <div id="three"></div> 
</div> 

在我的jQuery我试图找出div元素像下面并将它们添加在 一个容器。

$.ajax({ 
    url: requestURL?queryString, 
    success: function (data) { 
     /// i is increment by for loop ..for simplicity I am leaving that logic. 
     container.add(i,$(data).children('#one').html()); 

     // another case 
     container.add(i,$(data).children('#two').html()); 

     // another case 
     container.add(i,$(data).children('#three').html()); 
    } 
}); 

该方案将在FireFox工作不在IE 我已经试过像$(data).find('div#one')$(data).children('div#one'),但没有什么工作。

感谢您的帮助

+0

什么是容器,它是一个jQuery元素吗? – xdazz 2012-01-27 04:51:39

+0

是的,它是旋转木马容器 – 2012-01-27 04:53:36

回答

0

检查的.add的API。

如果您传递两个参数.add(selector, context),那么 第一个参数应该是一个表示选择器表达式的字符串,以查找添加到匹配元素集合中的其他元素。你的i做得对吗?

+0

是的,但容器是需要位置作为索引和内容作为TEXT/HTML的旋转木马容器。我正在做的工作...它在Firefox中像往常一样工作良好:)在IE中遇到麻烦,我怀疑IE的问题无法解析DOM什么AJAX返回...或者它可能需要很好形成.. – 2012-01-27 18:27:49

+0

I只是添加了一个警报用于调试目的警报($(data).html())在FF中重新生成HTML内容,但在IE中为null,你有任何想法 – 2012-01-27 19:24:21

0

我已经做了一些解决这个问题的方法,即修复IE的子方法。 1)我在返回HTML的顶部添加了DOCTYPE,并清除了所有返回HTML中的空白。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
    <div> 
    <div id="one"></div> 
    <div id="two"></div> 
    <div id="three"></div> 
    </div> 

$(data).children('div#one').html(); 

做工不错测试了在IE & Firefox浏览器。

Thansk