2010-11-11 70 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)插入標記,則不會執行此操作。所以你必須自己做。

相關問題