【问题标题】:Returning data is not working in jQuery using Ajax使用 Ajax 在 jQuery 中返回数据不起作用
【发布时间】:2010-09-28 23:39:33
【问题描述】:

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

...

问题是当我尝试提醒时,它不起作用。这个逻辑有什么问题?我应该使用其他函数来提取标题和消息吗?

【问题讨论】:

    标签: jquery ajax return extract


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 我用你指出的例子做了你的例子,当我试图提醒这个值时,它只是通过空消息,Firebug 说成功。我仍然无法提醒它怎么做?跨度>
      • 你能否在成功函数中放置断点并准确确定响应中的数据。
      • 如果不能,你可以把它放上去并链接网址,以便我可以提供帮助
      • 这并没有提供问题的答案。要批评或要求作者澄清,请在其帖子下方发表评论。
      • @newfurniturey 非常感谢,答案是 5.5 岁的事实是否让你错过了?
      【解决方案3】:

      尝试改用这个:

      var oneval = $("#response #title").text();
      var subval = $("#response #message").text();
      

      【讨论】:

      • 该 div 是否真的填充了您发回的内容?也就是说,你能看到“我的标题”和“我的消息”吗?
      • Michael,#response 无法工作,因为没有响应 id 的元素!
      • 不在返回的数据中,因此它不会工作....呸.....他把他的问题搞砸了,见stackoverflow.com/questions/400197/…。无论如何,并排运行两个 id 选择器没有任何好处或需要....
      • 我怀疑他的返回数据不像他说的那样,他真的可以安装 firebug 并查看实际发生的情况
      • 它不需要在返回的数据中......请注意,我使用的是根 $ 运算符......而不是他指出的 $(response) 。并排选择器指定您想要作为“响应”标签后代的“标题”id 标签。有一个好处 - 我一直在使用它。
      猜你喜欢
      • 1970-01-01
      • 2010-09-26
      • 2013-05-12
      • 2010-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-19
      • 2018-04-12
      相关资源
      最近更新 更多