【发布时间】:2013-02-08 16:10:28
【问题描述】:
我在 div 上调用 .html() 函数时遇到问题。我有一个 jQuery 对话框,其中包含一个带有选择选项输入的 div。在选择选项输入的更改事件中,对 java servlet 进行 ajax 调用,该 servlet 生成新代码,并使用 .html() 将其放入 div 中。这是我的ajax调用的“成功”功能:
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 上的 Div 仍然显示 Hello。
有什么线索吗?
【问题讨论】:
-
你不需要
.empty() -
在警报上按 OK,然后它应该更新为
World。这是阻止代码执行的操作的症状,例如警报、确认、提示和同步 ajax 请求。 -
您确定
$('#myDivId')是您正在查看的内容吗? -
@mikakun 如果我没记错的话,在某些浏览器中某些时候存在与 $#html()-without-$#empty() 相关的内存泄漏。 #bettersafethansorry
-
@Flo 不知道;你能指出任何描述这个的文章吗?
标签: jquery html ajax google-chrome