【问题标题】:jQuery .find() on data from .ajax() call returns undefined来自 .ajax() 调用的数据的 jQuery .find() 返回未定义
【发布时间】:2017-11-16 11:17:05
【问题描述】:

我正在尝试从.ajax() 中提取body 标记,但我将undefined 登录到控制台...

这是我的代码:

$(document).ready(function(){
  var user;
  $(".subacc_info").on('click', '#submit_user_delete', function(){
    user = $(this).closest($(".subacc_info")).find($("#subacc_name")).text();
    $.ajax({
      type: "POST",
      url: '/user/profile/delete',
      data: {user: user},
      dataType: "html",
      success: function(data){
        $result = $(data).find('body').html();
        console.log($result);
      }
    });
  });

我是不是做错了什么?

console.log(data) 将此字符串打印到控制台:

'<!DOCTYPE html>
<html lang="en">
  <head>
    ...
  </head>

  <body>
    <div class="container">

       ....

    </div> <!-- /container -->
  </body>
</html>'

【问题讨论】:

标签: javascript jquery ajax


【解决方案1】:

ajax调用是加载json数据、html文件、图片、jsp。 首先,您应该知道您将从 ajax 调用中获得什么对象。

ajax调用的调用页面应该有一些div,可以显示ajax调用的返回输出。

$(document).ready(function(){
  var user;
  $(".subacc_info").on('click', '#submit_user_delete', function(){
    user = $(this).closest($(".subacc_info")).find($("#subacc_name")).text();
    $.ajax({
      type: "POST",
      url: '/user/profile/delete',
      data: {user: user},
      dataType: "html",
      success: function(data){
        $("#SomeDIVId").html(data);
      }
    });
  });

【讨论】:

    【解决方案2】:

    Jquery 似乎忽略了 &lt;body&gt;&lt;html&gt; 元素,因此您实际上得到了正文中包含的内容的数组。解决此问题的一种方法是将该 HTML 附加到另一个元素并获取该元素的 HTML。

    你可以这样做:

    var data = '<!DOCTYPE html><html lang="en"><head></head><body><div class="container"></div> <!-- /container --></body></html>';
    
    var temp = $('<div>').append($.parseHTML(data));
    
    console.log(temp.html())
    .as-console-wrapper { max-height: 100% !important; top: 0; }
    &lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"&gt;&lt;/script&gt;

    【讨论】:

    • 如果响应html包含&lt;head&gt;标签中的一些数据,例如:&lt;head&gt;&lt;style&gt;// style here&lt;/style&gt;&lt;/head&gt;head标签中的内容也会可见。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-03
    • 2018-02-20
    相关资源
    最近更新 更多