【发布时间】:2013-11-29 15:15:30
【问题描述】:
我在导航中有一个未排序的链接列表,如下所示:
<ul class="main-nav-child">
<li><a href="/collections/1">collection one</a></li>
<li><a href="/collections/2">collection two</a></li>
<li><a href="/collections/3">collection three</a></li>
</ul>
点击后,我使用这个 sn-p 将每个链接的 html 输出加载到一个名为 .main-content 的容器中:
$('ul.main-nav-child a').bind('click', function(e) {
var url = $(this).attr('href');
$('.main-content').load(url); // load the html response into a DOM element
e.preventDefault(); // stop the browser from following the link
});
问题:我只想从链接中加载某个元素的内容,而不是整个页面。每个页面都有一个名为 .main-content 的元素,我想通过 ajax 获取它并将其显示在页面上,再次在 .main-content 中显示。
任何关于如何过滤.load() 的指导将不胜感激。
【问题讨论】:
-
发生了什么?当您尝试发出请求时,Net 选项卡中会显示哪些错误? AJAX 调用本身是否正常工作?我预计您的选择器是错误的,它实际上想要更像
$(".main-content").load(url + ".main-content");? -
一个XMLHttpRequest只能获取整个页面,没有过滤。 jQuery 的 load() 可以选择从返回的数据中过滤掉元素,或者您可以自己使用常规的 $.ajax 调用并过滤返回的数据。