-1

ページ内で jquery の $.post 関数を数回使用する必要があります。また、フィルタリングの目的で post メソッドから返されたデータを使用する必要があります。だから私は次のようにポスト関数を置きます:

$(document).ready(function(){
function loadData(url){
$.post(url,function(data){
var $data = data;
});
}

var raw = loadData(page01.php).filter("#someId").html();
$("#content").html(raw);

var raw = loadData(page02.php).filter("#anotherId").html();
$("#content2").html(raw);
});

しかし、それは機能していません。動作するように上記のコードを変更するための助けをいただければ幸いです。よろしく

4

1 に答える 1

1

jqueryのように、関数の後に別のメソッドを魔法のように呼び出すことはできません。これがloadData('page02.php').filter機能するには、関数がjQueryオブジェクトを返す必要があります。あなたの場合、loadData関数は何も返しません。ただし、非同期呼び出しであるため、jQuery オブジェクトを返すことはできません。サーバーから返されたコンテンツが html の場合、その html を変更するには、コールバック関数を追加する必要があります。これは、ajax 呼び出しの後に何かを適用する唯一の方法だからです。

コードは次のようになります。

$(document).ready(function(){
    function loadData(url, callback) {
        $.post(url, function(data){
            callback($(data)); // not sure if jquery detect if the content is 
                               // html here, if yes then you can remove $( )
        });
    }

    loadData('page01.php', function(html) {
        var raw = html.filter("#someId").html();
        $("#content").html(raw);
    });

    loadData('page02.php', function(html) {
        var raw = html.filter("#anotherId").html();
        $("#content2").html(raw);
    });
});
于 2013-06-21T13:40:29.967 に答える