1

私はこのようなAjaxコードを持っています:

$j(document).ready(function () {

    function loading_show() {
        $j('#loading').html("<img src='images/loading.gif'/>").fadeIn('fast');
    }

    function loading_hide() {
        $j('#loading').fadeOut();
    }

    function loadData(page) {
        loading_show();
        $j.ajax({
            type: "POST",
            url: "load_data.php",
            data: "page=" + page,
            success: function (msg) {
                var $response = $j(msg);

                // Query the jQuery object for the values
                oGlobal = $response.filter('#Z').text();

                $j("#container").ajaxComplete(function(event, request, settings) {
                    loading_hide();
                    $j("#container").html(msg);
                });
            }
        });
    }

    loadData(1); // For first time page load default results

    $j('#container .pagination li.active').live('click', function () {
        var page = $j(this).attr('p');
        loadData(page);
    });
}); 

私はこの応答を得ています:

<div id="container">
    <div id="Z">JuanFernando</div>
    <div id="q">
        <div class="pagination">
            <ul>
                <li p="1" class="inactive">First</li>
                <li class="inactive">Previous</li>
                <li p="1" style="color:#fff;background-color:#006699;" class="active">1</li>
                <li p="2" class="active">2</li>
                <li p="2" class="active">Next</li>
                <li p="2" class="active">Last</li>
            </ul>
            <input class="goto" size="1" style="margin-top:-1px;margin-left:60px;"
                type="text">
            <input id="go_btn" class="go_button" value="Go" type="button"><span class="total" a="2">Page <b>1</b> of <b>2</b></span>
        </div>
    </div>
</div>

divコンテナーに表示するために「JuanFernando」を抽出したいのですが、単独で、残りの応答を他の別のdiv(container2など)に表示できるようにしたいと思います。

4

2 に答える 2

0

ajaxCompleteは、特に成功関数内では、ここで使用したいものではありません。成功関数を次のように表示する必要があります。

success: function (msg) {
    loading_hide();
    var $response = $j(msg);

    // Query the jQuery object for the values
    oGlobal = $response.find('#Z').text();

    $j("#container").html(oGlobal);

    $response.find('#Z').remove();
    $j('<div id="container2"></div>').html($response.html()).appendTo('body');
}

oGlobal(この場合はJuanFernandoである必要があります)を取得して、に貼り付けています#container。その後#Z、応答からdivを削除し、残りを新しいの中に貼り#container2付けて、本体または任意の場所に追加します。

于 2013-03-06T19:14:59.410 に答える
0

これが「適応した」フィドルです。

基本的に、コードによって変わるのは

交換

oGlobal = $response.filter('#Z').text();

oGlobal = $response.find('#Z').text();

また、に関するMattDiamantの回答を参照してくださいajaxComplete

于 2013-03-06T19:15:27.330 に答える