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 > *");​​​​​​​​​​​

ここでは、ブロックを囲まず> *にブロックの内部HTMLのみを含めるために使用できます(詳細については、こちらを確認してください)。#content<div id="content"></div>

于 2012-07-03T22:50:49.610 に答える
2

getページ上の要素を操作するのと同じ方法で、から返されたデータを操作できます。

例えば:

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