2013-02-08 55 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并且它可以工作!