2010-11-11 67 views
0

我有一个jQuery函数,我正在调用一个单击事件。代码片段如下jQuery .html()函数在Internet Explorer中不显示Ajax成功返回值

$.ajax({ 
    url: '/delivery_windows/' + current_month + '/' + selected_day, 
    success: function(data) { 
    $('#time-selection').html(data); 
    } 
}); 

在实际文件的这个片段之上,正在设置current_month和selected_day。我在成功函数中添加了一个alert(数据)函数,并在警告框中显示了正确的html显示,但时间选择元素在网页上显示为完全空白。

我已经在Firefox,Chrome,Safari和Opera上测试过。所有这些都按预期工作。 IE 7和IE 8是唯一返回空时间选择元素的人。

我已阅读其他帖子,尝试在时间选择上调用.empty(),然后调用.append()而不是使用.html(),但获得相同的结果。

有没有人有我在做什么错误的想法呢?

任何帮助将不胜感激!

我的情况是有差别提前

由于建设这个在Drupal,使用jQuery 1.3.2

+2

闻起来像症状中的无效标记,数据看起来像什么? – 2010-11-11 17:59:13

+1

一个明显的测试:'$('#time-selection')。html('foo');'工作吗?如果没有,这与您的AJAX调用无关,并且与页面上已有的标记有关。无论选择器是无效的(可能有点太明显),或者其他东西与HTML(例如,一个未封闭的标签)混淆。 – VoteyDisciple 2010-11-11 18:01:07

+0

请给我们一个提醒的html的例子。看起来有些问题,IE浏览器无法处理,但其他浏览器清理。 – 2010-11-11 18:01:35

回答

1

将返回的数据转换为字符串应解决此问题。尝试以下操作:

$.ajax({ 
    url: '/delivery_windows/' + current_month + '/' + selected_day, 
    success: function(data) { 
    $('#time-selection').html(String(data)); 
    } 
}); 
3

我有此相同的问题,减去所有的差异:)

我的服务调用它返回一个HTML字符串与多个<tr>元素和我将变成一只<table>元素成功回调$.get()

在IE7中,您需要添加<tbody>标记来环绕插入的表格行,否则它将无法工作。当页面加载时,IE7通常会为您插入<tbody>标签,但是如果您使用java-script或java-script API(如jQuery)插入标记,则不会执行此操作。所以你必须自己做。

相关问题