jQuery .html()函数在Internet Explorer中不显示ajax成功返回值

时间:2010-11-11 17:56:45

标签: jquery ajax

我有一个jQuery函数,我正在调用click事件。代码段位于

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

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

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

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

有没有人知道我做错了什么?

非常感谢任何帮助!

我正在使用jQuery 1.3.2

在Drupal中构建它,以防万一

提前致谢!!

2 个答案:

答案 0 :(得分:3)

我有这个完全相同的问题,减去所有差异:)

我的服务调用返回了一个包含多个<tr>元素的HTML字符串,我将其插入到<table>成功回调中的$.get()元素中。

在IE7中,您需要添加<tbody>标记以包围插入的​​表格行,否则它将无效。 IE7通常会在页面加载时为您插入<tbody>标签,但如果您使用java脚本或java脚本API(例如jQuery)插入标记,则不会这样做。所以你必须自己做。

答案 1 :(得分:1)

将返回的数据转换为String应解决此问题。请尝试以下方法:

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