使用Jquery AJAX加载页面框架

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

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

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

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

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

这相当于

 $("#el").load('http://example.com/page.html #selector'); 

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

你可以通过post获取你的片段,将html附加到一个带有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); }) }); 

对你的正确答案是:

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

使用加载方法的简单解决方案:

 $("#menu a").click(function(){ event.preventDefault(); $("#container").load(this.href + " #container p"); return false; }); 

仅对更复杂的脚本使用Ajax方法,例如发布或从PHP脚本或JSON文件获取,否则会降低您的网站速度。