我有一个AJAX调用,它返回需要在页面上替换的多个HTML片段:
<div data-replace="some-div">
<p>whatever</p>
</div>
<div data-replace="some-other-div">
<p>something else</p>
</div>
目前,我将所有html添加到页面上的隐藏div,然后执行:
hiddenDiv.find('[data-replace]').each(function () {
$('#' + $(this).data('replace')).html($(this).html());
$(this).remove();
});
这似乎有效,但似乎有点hacky。
有没有更好的方法(虽然仍然不能使用JSON,因为这不受我的控制)?
答案 0 :(得分:2)
我会创建一个包含所有DOM元素的jQuery对象,并且不会将它们作为隐藏的DIV元素附加到文档中,因为您不需要它。此外,您不需要在更新后删除它。
这样的事情:
(假设您的AJAX响应是一个名为data的变量)
var $data = $("<div>" + data + "</div>");
$data.find('[data-replace]').each(function () {
$('#' + $(this).data('replace')).html(this.innerHTML);
});