Frage

Ich habe Code mit Ajax und jQuery entwickelt. Ich habe eine Antwort von my.php bekam, und ich habe versucht, die Werte der Antwort zu extrahieren. Hier ist der Code (HTML):

My.php

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

Ich versuche, den Titel und die Nachricht zu extrahieren, so meinen Code unten ist.

    <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>

...

Das Problem ist, wenn ich aufmerksam zu machen versuchte, es funktioniert nicht. Was ist falsch an dieser Logik? Soll ich eine andere Funktion verwenden, um die Titel und die Nachricht zu extrahieren?

War es hilfreich?

Lösung

OK, gehen Sie auf http://jsbin.com/udige/ und Sie können es sehen Arbeits .

Der Schlüssel wird unter Verwendung von .filter, nicht .find als die beiden divs Stammelemente in der Reaktion sind. Mein Fehler.

Im Wesentlichen wie folgt vor:

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

Andere Tipps

Wenn die Antwort zurückkommt, wie Sie es dann den Code geschrieben, die ich habe Sie arbeiten werden.

Sie müssen wirklich lernen, wie man einen Debugger verwenden ( Firebug ) und Haltepunkte in den Code eingeben, damit Sie die Konsole Selektoren verwenden können, zu testen und zu den Werten von Variablen aussehen usw. Auch sollten Sie wirklich haben auf die ursprüngliche Frage und Antwort reagiert, die ich gab nicht eine ganz neue Frage Eröffnung zumal Sie haben nicht einmal die ursprünglichen referenzierten Kreuz.

Versuchen Sie es mit dieser statt:

var oneval = $("#response #title").text();
var subval = $("#response #message").text();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top