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>
War es hilfreich?

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top