
Mark Baijens
Ich lade ein HTML mit Ajax. Ich möchte das Ergebnis in ein jquery-Objekt laden. Ich habe das versucht, aber es gibt null zurück. Wie kann ich das machen? Ich habe eine komplette Seite mit Doctype, Head-Elementen und Body-Elementen erhalten.
var test = $(result); //result contains html code
alert(test.html()); //returns null
Ich lade die Daten mit dieser Funktion.
function ajaxLoadContent(element) {
$.ajax({
url: "url to the page",
type: "GET",
timeout: 5000,
datattype: "html",
success: function(result) {
//handler
},
});
return false;

lrsjng
Es ist schon eine Weile her, aber vielleicht interessiert es dich immer noch..
Die interne Umsetzung von $(String)
kann kein jQuery-Objekt erstellen, das enthält head
oder body
Stichworte. Es ignoriert sie einfach und verschiebt alle Elemente nach innen auf der Ebene nach oben.
Also, wenn deine Zeichenfolge zum Beispiel ist
<html>
<head>
<meta ...>
</head>
<body>
<div id="a"/>
</body>
</html>
Das resultierende jQuery-Objekt ist ein Array aus zwei Elementen
[<meta ...>, <div id="a" />]
einen bekommen body
-like jQuery-Objekt schneidet alles außer dem Body-Inhalt aus, bevor es an jQuery übergeben wird:
body = '<div id="body-mock">' + html.replace(/^[sS]*<body.*?>|</body>[sS]*$/ig, '') + '</div>';
var $body = $(body);
jetzt funktioniert alles wie erwartet.. zum Beispiel
$body.find('#a')
Hoffentlich hilft das..
test ist nur ein HTML-String, also können Sie dies einfach tun, um den Inhalt anzuzeigen
alert(result);
und wenn Sie das an ein Element binden möchten
$("#myDiv").html(result);
function ajaxLoadContent(element) {
$.ajax({
url: "url to the page",
type: "GET",
timeout: 5000,
datattype: "html",
success: function(data) {
var result = $(data);
},
});
return false;
Sie sollten das Ergebnis jetzt wie folgt aufrufen können (denken Sie daran, dass es noch nicht zum DOM hinzugefügt wurde):
alert(result.html());
Zum DOM hinzufügen
result.appendTo("body");
Lass mich wissen, ob das für dich funktioniert.
Versuchen Sie es load
Methode des jQuery-Objekts: http://api.jquery.com/load/
Laden Sie Daten vom Server und platzieren Sie den zurückgegebenen HTML-Code in dem übereinstimmenden Element.
.
2652500cookie-checkParsen Sie die komplette HTML-Seite mit jqueryyes
Ergebnis ist wahrscheinlich nur eine Zeichenfolge
– Jäger
13. Dezember ’10 um 14:40
Können Sie zeigen, wie Sie die Daten in
result
? Auchalert(result);
HTML in der Benachrichtigung anzeigen? Einfach html in eine Variable wie diese zu laden, führt nicht automatisch dazu, dass die .html()-Funktion html zurückgibt. Ihre Ergebnisvariable kann bereits html sein.– Josh
13. Dezember ’10 um 14:41
Warum das Ergebnis nicht einfach ausdrucken? Dies sollte Text sein.
– WaiLam
13. Dezember ’10 um 14:41
@Josh, die Funktion zum Aufrufen der Seite zum Beitrag hinzugefügt. Ja, der HTML-Code wird in der Benachrichtigung angezeigt, wenn ich dies tue
alert(result)
.– Mark Baijens
13. Dezember ’10 um 14:50
@WaiLam Ich möchte einige Änderungen vornehmen, bevor ich den HTML-Code auf meiner Seite verwende.
– Mark Baijens
13. Dezember ’10 um 14:51