我有一个 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。
有没有更好的方法(虽然仍然返回 HTML 而不是 JSON,因为这是我无法控制的)?
最佳答案
我会创建一个包含所有 DOM 元素的 jQuery 对象,而不是将它们作为隐藏的 DIV 元素附加到文档中,因为您不需要它。此外,您无需在更新后将其删除。
像这样:
(假设您的 AJAX 响应是一个名为 data 的变量)
var $data = $("<div>" + data + "</div>");
$data.find('[data-replace]').each(function () {
$('#' + $(this).data('replace')).html(this.innerHTML);
});
关于javascript - 使用 jquery ajax 调用中的 html 更新多个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16773529/