簡體   English   中英

對來自.ajax()調用的數據的jQuery .find()返回未定義

[英]jQuery .find() on data from .ajax() call returns undefined

我正在嘗試從.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>'

似乎Jquery忽略了<body><html>元素,因此實際上是在獲取主體中包含的數組。 解決此問題的一種方法是將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; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 

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);
      }
    });
  });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM