質問

AjaxとjQueryを使用してコードを開発しました。 my.phpから応答があり、 応答の値を抽出しようとしました。ここにコード(HTML):

My.php

?php
    echo '<div id="title">My Title </div>';
    echo '<div id="message"> My message </div>';
?>

タイトルとメッセージを抽出して、コードが下にくるようにします。

    <head>
        <script type="text/javascript" src="js/jquery-1.2.6.js"></script>
        <script type="text/javascript">
            $(document).ready(function() {
                alert("OK");

                $.ajax({
                    type:"POST",
                    url: "my.php",
                    cache:false ,
                    success: function(data){
                        $("#response").html(data);
                        var $response = $(data);
                        var oneval = $response.find('#title').text();
                        var subval = $response.find('#message').text();
                        alert(oneval);
                    }
                });
            });
        </script>
    </head>

    <body>
        <div id="response">
        </div>
    </body>
</html>

...

問題は、警告しようとしたときに動作しないことです。このロジックの何が問題になっていますか?タイトルとメッセージを抽出するために別の関数を使用する必要がありますか?

役に立ちましたか?

解決

OK、 http://jsbin.com/udige/ にアクセスすると、動作を確認できます。 。

キーは.findではなく .filter を使用しています。2つのdivは応答のルート要素です。私の間違い。

基本的に次の操作を実行します。

success: function(data){
    $("#response").html(data);
    var $response = $(data);
    var oneval = $response.filter('#title').text();
    var subval = $response.filter('#message').text();
    alert(oneval);
}

他のヒント

応答があなたが書いたときに戻ってきた場合、私があなたに与えたコードは動作します。

デバッガーの使用方法を本当に学ぶ必要があります( Firebug )コードにブレークポイントを設定して、コンソールを使用してセレクターをテストし、変数の値などを確認できるようにします。 また、元の質問を相互参照していないので、まったく新しい質問を開くのではなく、元の質問と回答に実際に応答する必要があります。

代わりにこれを使用してみてください:

var oneval = $("#response #title").text();
var subval = $("#response #message").text();
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top