2017-06-14 1 views
0

Ich versuche, die body Tag aus .ajax() zu extrahieren, aber ich erhalte undefined zu trösten angemeldet ...jQuery .find() auf Daten von .ajax() Aufruf zurückkehrt undefined

Dies ist mein Code:

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

Mache ich etwas falsch?

console.log(data) druckt diese Zeichenfolge zu trösten:

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

    <body> 
    <div class="container"> 

     .... 

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

Was bedeutet 'console.log (Daten)' aussehen? – 31piy

+0

Welche Daten werden von URL zurückgegeben. add '/ user/profile/delete' – guradio

+0

@ 31piy Ich habe meine Frage aktualisiert – Valip

Antwort

0

Es scheint wie JQuery die <body> und <html> Elemente ignoriert, so dass Sie eigentlich immer eine Reihe von dem, was im Körper enthalten ist. Eine Möglichkeit, dies zu umgehen, besteht darin, diesen HTML-Code an ein anderes Element anzuhängen und den HTML-Code dieses Elements abzurufen.

Sie können so tun, wie unten:

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>

-1

Ajax-Aufruf ist die JSON-Daten, HTML-Dateien, Bilder, jsp zu laden. Zuerst sollten Sie wissen, welches Objekt Sie von einem Ajax-Anruf erhalten.

Es sollte einige div in Aufrufseite von AJAX-Aufruf, wo Sie die Rückgabe von AJAX-Aufruf anzeigen können.

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