2

我试图使用 $.get 加载页面而不重新加载页面。

<script>
$('#top_links a').click(function (e) {
    e.preventDefault();
    var link = $(this).attr('href');
    $('#content').empty();


    $.get(link, { }, 
        function(data) {
            $('#content').empty().append(data);
        }
    )
});
</script>

这可行,但整个请求的页面都被塞进#content. 我不想在服务器端检测 ajax 请求并过滤数据,而是在客户端进行。有没有办法使用 javascript 来有效地过滤字符串,以便我只得到某些 div?我要保留的内容将全部包含在一个名为的 div 中#content(我只是试图将当前页面#content与请求的页面交换#content)。

4

2 回答 2

2

尝试load加载页面片段的方法:

$("#content").load(link + " #content > *");​​​​​​​​​​​

在这里,我们可以使用> *以便#content仅包含块的内部 HTML,而不用包围它(在此处<div id="content"></div>查看有关它的更多信息)。

于 2012-07-03T22:50:49.610 回答
2

您可以像处理get页面上的元素一样操作返回的数据。

例如:

$('#content').replaceWith($(data).find("#content"));
于 2012-07-03T22:52:04.457 回答