我想在jQuery UI模式对话框结束时刷新<div>
。
我的代码是:
var dialog = jQuery('#divPopup').dialog({
autoOpen: false,
height: 450,
width: 650,
modal: true,
open: function(event, ui) {
jQuery('body').css('overflow', 'hidden');
},
close: function(event, ui) {
jQuery('#divPopup').dialog('destroy').remove();
jQuery("#bodyId").load("http://www.xyz.com/ #bodyId");
}
});
但是,不是替换它,而是在旧<div>
内添加新的<div>
:
<div id="bodyId">
<div id="bodyId">
New Response
</div>
</div>
我想用新的div bodyId
替换旧的div bodyId
。
答案 0 :(得分:12)
尝试替换它:
jQuery("#bodyId").load("http://www.xyz.com/ #bodyId");
......用这个:
jQuery("#bodyId").load("http://www.xyz.com/ #bodyId > *");
这是有效的,因为您可以在URL后使用任何选择器。使用#bodyId > *
代替#bodyId
,您可以匹配里面 div的所有内容,而不是div本身。
您需要这样做,因为.load()
不会替换元素;它将追加 AJAX调用的结果。
或者,您可以使用.get()
加载数据并手动执行选择,如下所示:
$.get('http://www.xyz.com/', function(data) {
var newContent = $(data).find('#bodyId').children();
$('#bodyId').empty().append(newContent);
});
这两种方法的例子都在网上:http://jsfiddle.net/PPvG/47qz3/
答案 1 :(得分:0)
您也可以使用jquery.get。
$.get('http://www.xyz.com/', function(data) {
$('#bodyId').html(data);
});
答案 2 :(得分:-4)
您可能会使用此代码
$('#bodyID').remove();
$('#bodyID').load();