Laden XHTML Fragmente über AJAX mit jQuery
Frage
Ich versuche, Fragmente von XHTML Markup mit jQuery $.fn.load
Funktion zu laden, aber es löst einen Fehler versucht, das neue Markup in das DOM hinzuzufügen. Ich habe das verengte bis auf die XML-Deklaration (<?xml...?>
) - der Ansicht funktioniert, wenn ich statischen Text ohne Erklärung zurück. Ich verstehe nicht, warum dies würde Versagen verursachen, oder wenn die Schuld liegt in jQuery, Firefox oder meinem Code.
Wie soll ich einfügen XHTML-Fragmente in das DOM mit jQuery?
$ .get Mit funktioniert nicht - der Rückruf erhält ein Document
Objekt, und wenn ich versuche, es in das DOM einfügen, erhalte ich folgende Fehlermeldung:
uncaught exception: Node cannot be inserted at the specified point in the hierarchy (NS_ERROR_DOM_HIERARCHY_REQUEST_ERR)
http://localhost:8000/static/1222832186/pixra/script/jquery-1.2.6.js
Line 257
Dies ist mein Code:
$body = $("#div-to-fill");
$.get ("/testfile.xhtml", undefined, function (data)
{
console.debug ("data = %o", data); // data = Document
$body.children ().replaceWith (data); // error
}, 'xml');
Eine Probe Antwort:
<?xml version="1.0" encoding="UTF-8"?>
<div xmlns="http://www.w3.org/1999/xhtml">
<form action="/gallery/image/edit-description/11529/" method="post">
<div>content here</div>
</form>
</div>
Lösung
Versuchen Sie stattdessen (ich habe nur einen kurzen Test und es scheint zu funktionieren):
$body = $("#div-to-fill");
$.get ("/testfile.xhtml", function (data)
{
$body.html($(data).children());
}, 'xml');
Im Grunde .children () werden Sie den Wurzelknoten erhalten und den Inhalt des div mit ersetzen. Ich denke, man kann nicht genau ein XML-Dokument einfügen mit der Xml Deklaration in das DOM ...