【问题标题】:How to use jquery GET to fetch the content of a page once but split it and insert it into different divs?如何使用 jquery GET 一次获取页面内容但将其拆分并将其插入不同的 div?
【发布时间】:2021-08-14 00:27:34
【问题描述】:

嗨,

有一个外部网页,其内容分为 2 个 div。一个是 IDed #mgs,另一个是 #users。我想加载每个 DIV 的内容并将它们插入到我页面上的不同 DIVS 中。我这样做了:

$("#cont1").load("page.php #mgs");
$("#cont2").load("page.php #users");

这可行,但由于外部页面也在我的服务器上,我认为它是一种资源浪费,因为它两次加载相同的页面。我怎样才能只加载一次并将内容分成我的 2 个 div?我尝试过这样的事情:

$.get("page.php", function (data) {
 data = $(data).find('#mgs').html();
 data2 = $(data).find('#users').html();
           
 $("#cont1").empty().append(data);
 $("#cont2").empty().append(data2);
});

但它不会工作。有办法吗?

谢谢。

【问题讨论】:

    标签: jquery get


    【解决方案1】:

    您使用变量data 的次数过多,当您到达第二个$(data).find() 时,它不再是完整的页面响应。

    另外html(string) 将替换所有现有内容,这比组合emptyappend 更简单

    试试:

    $.get("page.php", function(data) {
      const $page = $(data),
        mgs = $page.find('#mgs').html(),
        users = $page.find('#users').html();
    
      $("#cont1").html(mgs);
      $("#cont2").html(users);
    });
    

    【讨论】:

    • 谢谢,但语法一定有问题。代码什么也没产生。
    • 你需要做一些基本的调试。在浏览器开发工具中启动并检查控制台是否抛出错误。检查“网络”选项卡以查看是否发出请求并检查该请求以查看其是否为 200 状态以及该响应正文是否符合预期。开始缩小问题所在
    • 我这样做了,并且有点修复它,但我无法理解它。请查看您发布的代码中的修改。
    • 不要将答案中的代码更改为我永远不会编写且没有意义的内容。只需解释您的调试结果
    • 嗯,很抱歉,但问题是我发布的代码确实有效,而您的代码无效。调试消息显示Uncaught SyntaxError: missing variable name。它对你有用吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-01
    • 2013-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-13
    • 2012-06-15
    相关资源
    最近更新 更多