Возврат данных не работает в jQuery с использованием Ajax

StackOverflow https://stackoverflow.com/questions/402503

  •  03-07-2019
  •  | 
  •  

Вопрос

Я разработал код с помощью Ajax и jQuery.У меня есть ответ от my.php, и я попытался извлечь значения ответа.Вот код (HTML):

Мой.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>

...

Проблема в том, что когда я попытался предупредить, оно не сработало.Что не так в этой логике?Должен ли я использовать другую функцию для извлечения заголовка и сообщения?

Это было полезно?

Решение

ОК, иди http://jsbin.com/udige/ и вы увидите, как это работает.

Ключ использует .filter, а не .find, поскольку два элемента div являются корневыми элементами ответа.Виноват.

В основном сделайте следующее:

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

Другие советы

Если ответ возвращается в том виде, в котором вы его написали, то код, который я вам дал, будет работать.

Вам действительно нужно научиться пользоваться отладчиком (поджигатель) и поместите точки останова в свой код, чтобы вы могли использовать консоль для проверки селекторов, просмотра значений переменных и т. д.Кроме того, вам действительно следовало ответить на исходный вопрос и ответ, который я дал, а не открывать совершенно новый вопрос, тем более что вы даже не сделали перекрестную ссылку на свой оригинал.

Попробуйте использовать это вместо этого:

var oneval = $("#response #title").text();
var subval = $("#response #message").text();
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top