无法使用$ .get函数(响应)从其他html获取数据

时间:2014-05-04 12:00:23

标签: jquery ajax get response

我有一个单页概念,其中总有一个导航菜单,下面是一个具有可交换内容的div。内容来自其他html文件。

在函数“navigateToPage”中,我试图从另一个html文件中的div内部获取数据,div有一个ID(#content-main)和类(.fragment),所以我想过滤/查找其中的所有内容,并将其放在具有相同ID的当前站点的div中。

function getPageName() {
    var
        pathName = window.location.pathname,
        pageName = "";

    if (pathName.indexOf("/") != -1) {
        pageName = pathName.split("/").pop();
    } else {
        pageName = pathName;
    }

    return pageName;
}



function navigateToPage() {

    var pageName = getPageName();


        $.get(pageName, function (response) {

        var
        // Wrap the resulting HTML string with a parent node
        // so jQuery can properly select against it.
            markup = $("<div>" + response + "</div>"),

        // Extract the fragment out of the markup.
            fragment = markup.find(".fragment").html();

        $("#content-main").html(fragment);
        });
}

问题是,似乎没有内容被抓到navigateToPage()。

该程序的描述来自Craig Shoemaker。 我想也许是得到的&amp;响应已弃用,我必须使用类似this的内容吗?

我应该添加第3部分,也许错误在那里..?

    $("a[data-role='ajaxLink']").on('click', function (e) {

        if (window.history && window.history.pushState) {
          e.preventDefault();
          var pageName = $(this).attr("href");
          window.history.pushState(null, "", pageName);
          navigateToPage();
        }
    });

1 个答案:

答案 0 :(得分:0)

这似乎解决了这个问题:

$('#content-main').load(pageName + " .fragment");

你不知道为什么其他方法不起作用......

我必须添加,因为DIV与class&#34; .fragment&#34;将被加载到DIV#content-main中,必须要注意不要创建嵌套的DIV。我解决了这个问题,因为我在每个html上都有一个低于#content-main的DIV,我将放置类.fragment。