使用来自jquery ajax调用的html更新多个元素

时间:2013-05-27 12:45:56

标签: javascript jquery dom

我有一个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,因为这不受我的控制)?

1 个答案:

答案 0 :(得分:2)

我会创建一个包含所有DOM元素的jQuery对象,并且不会将它们作为隐藏的DIV元素附加到文档中,因为您不需要它。此外,您不需要在更新后删除它。

这样的事情:

(假设您的AJAX响应是一个名为data的变量)

var $data = $("<div>" + data + "</div>");
$data.find('[data-replace]').each(function () {
    $('#' + $(this).data('replace')).html(this.innerHTML);
});