javascript - 使用 jquery ajax 调用中的 html 更新多个元素

标签 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。

有没有更好的方法(虽然仍然返回 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/

相关文章:

对象上的 Javascript 在 DataTable 行中不起作用

javascript - Ajax Php 相关下拉选择 - 如何将城市名称而不是 id 发布到数据库中(从数据提交)?

javascript - 在 Es6 中添加模板后点击事件

javascript - 中止 jquery 中的所有先前请求

javascript - 数组for循环,javascript循环太多次

javascript - 在 VE SDK 6.2 中控制集群图钉的 VEShape

javascript:向表格添加编号行

javascript - 您如何使用 &lt;input type ="button"> 使用 javascript 提交表单

javascript - jquery多次输入数字字段求和值

javascript - 我有几千个 javascript 对象,我需要显示和滚动它们。我有什么选择?