使用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文件获取,否则会降低您的网站速度。