【发布时间】:2014-04-26 20:36:33
【问题描述】:
我有一个返回 HTML 响应的 Ajax 请求。
我想将 DOM 中的现有 DIV 替换为具有新内容的相应 ID。
我相信该方法类似于此处概述的内容:
Update multiple elements with html from jquery ajax call
这是我原来的 DOM:
<a onclick="ajaxTest();">Test</a>
<div id="x">
xxx
</div>
<div id="y">
yyy
</div>
这是回复:
<div id="response">
<div id="x" class="room">111</div>
<div id="y" class="room">222</div>
</div>
这是 JS。
function ajaxTest(){
// UPDATE ON SERVER
$.post("secure/admin/allocateRoom.do", {
bookingId : 3051,
roomId : 2291,
success : function(data) {
var $response = $(data);
$response.children().each(function() {
alert('in');
$('#' + this.id).html(this.innerHTML);
});
}
});
}
这现在适用于以下请求:
$.post("secure/admin/allocateRoom.do", {
bookingId : bookingId,
roomId : roomId
}, function(html) {
var $response = $(html);
$response.children().each(function() {
if (this.id) {
$('#' + this.id).replaceWith(this);
}
});
});
【问题讨论】:
-
我只是想澄清一些事情。你说“这是我原来的 DOM”,但那不是 DOM。那是您的 HTML 代码的 sn-p。 DOM 复杂得多,在页面上并不真正可见,但在页面上编写代码时非常重要。这是一种简单的表达方式,但是当您深入研究 DOM 时,它非常复杂。
-
这增加了讨论的内容?
-
知识。不然你为什么会来 Stack Overflow?