2013-02-08 82 views
0

我遇到了在div上調用的.html()函數的問題。我有一個jQuery對話框,其中包含一個帶有選擇選項輸入的div。在選擇選項輸入的更改事件中,對java servlet執行ajax調用,該servlet會使用.html()生成要放入div的新代碼。以下是我的ajax通話的「成功」功能:.html()在刪除自己的div

success: function (data, textStatus, xhr) { 
    if (data.length > 0) { 
     alert($('#myDivId').html()); 
     $('#myDivId').empty().html(data); 
     alert($('#myDivId').html()); 
    } 
} 

這裏有趣的部分!我第一次改變選擇值,它工作得很好。當我再次嘗試時,ajax調用按預期工作,但屏幕上的內容(chrome和IE)不反映html()函數返回的內容。第一次叫後,警報顯示,說:

<b>Hello</b> 

的HTML()調用之前,它說,再經過:

<b>World</b> 

但事業部在Chrome和IE瀏覽器仍顯示你好

任何線索?

+2

您不需要'.empty()' – mikakun 2013-02-08 16:14:10

+0

按下提示中的OK,應該更新爲'World'。這是阻止代碼執行的行爲的一種症狀,例如警報,確認,提示和同步ajax請求。 – 2013-02-08 16:15:38

+0

你確定'$('#myDivId')'是你正在看什麼? – freakish 2013-02-08 16:15:43

回答

0

我終於在這裏發現了問題。 div pb-div是動態創建的。在我的應用程序的特定情況下,該div將從頁面中移除。當它使用相同的腳本重新創建時,它看起來像瀏覽器仍然有另一個div上的句柄或類似的東西。我只是在DIV名稱中添加了時間戳,以便始終有一個唯一的ID並且它可以工作!