使用Jquery AJAX加载页面框架

use*_*423 18 ajax jquery

我想使用$ .ajax()来请求页面,但只加载该页面的片段.我知道你可以使用.load()指定你想要的页面片段但是我想知道这是否可以使用$ .ajax?

Jor*_*ter 35

对于那些想知道的人来说,stoplion指的是这个功能:加载页面碎片(在页面上向下滚动):

与$ .get()不同,.load()方法允许我们指定要插入的远程文档的一部分.这是通过url参数的特殊语法实现的.如果字符串中包含一个或多个空格字符,则假定第一个空格后面的字符串部分是确定要加载的内容的jQuery选择器.

由于$ .get()似乎不支持它,我认为$ .ajax也不会.实现这一点的简单方法如下:

$.ajax({
   url: 'http://example.com/page.html',
   data: {},
   success: function (data) {
      $("#el").html($(data).find("#selector"));
   },
   dataType: 'html'
});
Run Code Online (Sandbox Code Playgroud)

这相当于

$("#el").load('http://example.com/page.html #selector');
Run Code Online (Sandbox Code Playgroud)

但请注意,特殊语法('#selector')表示加载的HTML中存在的脚本不会被执行.请参阅.load()文档中的脚本执行.


Dav*_*ins 3

您可以通过 post 获取片段,将 html 附加到带有 display: none; 的 div 中。然后使用选择器获取所需的片段并将其附加到您要显示的区域。

航空代码:

<div id="tempRegion" style="display:none;">

</div>

$.ajax({
    url: "page.htm",
    type: "GET",
    success: function(results){

        $('#tempRegion').html(results);

        ...

        //  Now select fragment, append to display area
        var fragement = $('#someFragment').html();

        $('#displayRegion').html(fragement);

    })

});
Run Code Online (Sandbox Code Playgroud)