你能“嵌套”HTML内容的JQuery加载吗?

Can you "nest "JQuery loading of HTML content?

提问人:MrMyth 提问时间:7/19/2021 更新时间:7/19/2021 访问量:58

问:


是否可以使用 JQuery.load() 从多个 HTML 文件中“嵌套”内容?

我希望能够将所有 HTML 内容都放在顶级“content”div 中。
我的代码示例如下所示:


加载 .js - “第一层”加载到“内容”div

$(function () {
    $('#content').load('/first.html #firstLayer', true)
    $('#firstLayerContent').load('/second.html #secondLayer', true)
})

第一.html

<div id="firstLayer">
    <div id="firstLayerContent"></div>
</div>

第二.html

<div id="secondLayer">
    <p style="font-size: 100px;">Hello world</p>
</div>
JavaScript HTML jQuery 嵌套 加载

评论


答:

1赞 Rory McCrossan 7/19/2021 #1

是的,你可以**。您只需要确保第二次调用在第一次调用之后执行,以便保证该元素在您尝试将内容放入其中时存在。为此,请使用 callback 参数:load()#firstLayerContent

jQuery($ => {
  $('#content').load('/first.html #firstLayer', () => {
    $('#firstLayerContent').load('/second.html #secondLayer');
  });
})

** 但要非常小心这种模式,因为对部分数据发出大量小请求很容易导致服务器资源消耗。在几乎所有情况下,发出一个更大的请求会更有效率,该请求从服务器检索所有必需的数据并在客户端上处理。