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

...

问题是当我试图提醒时,它不起作用。这个逻辑出了什么问题?我应该使用其他功能来提取标题和消息吗?

有帮助吗?

解决方案

好的,转到 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);
}

其他提示

如果响应在您编写时回复,那么我给您的代码将起作用。

您真的需要学习如何使用调试器( Firebug )并将断点放入代码中,以便您可以使用控制台来测试选择器并查看变量的值等。 另外你应该回答我给出的原始问题和答案,而不是打开一个全新的问题,特别是因为你甚至没有交叉引用你的原文。

请尝试使用此代码:

var oneval = $("#response #title").text();
var subval = $("#response #message").text();
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top