Dokument.insertBefore wirft Fehler
Ich habe dieses Stück code:
<textarea id="test" style="width: 400px; height: 100px"></textarea>
<script>
var inserting = document.createElement("div");
document.insertBefore(inserting,document.getElementById("test"));
</script>
Dem einfügen sollte DIV id=inserting
vor textarea id=test
, aber dieser Fehler tritt auf,
Node was not found" code: "8
Ich benutze FireFox 3.6 mit Firebug auf WinXP. Wo ist das problem?
- Sie können "Dokument".currentscript zu tun, dass der job von firefox 4.
Du musst angemeldet sein, um einen Kommentar abzugeben.
insertBefore
muss namens auf das übergeordnete element des Elements, vor dem eingefügt wird:.insertBefore()
muss aufgerufen werden, auf einen DOM-Knoten.document
ist nicht ein DOM-Knoten. Versuchen Sie es mit dem Eltern-Knoten textarea.Wie andere erwähnt haben, müssen Sie rufen Sie
insertBefore
auf die übergeordnete<textarea>
Knoten. Gemäß der API-Dokumentation für Knoten.insertBefore:Du willst also sagen etwas entlang der Linien von:
Statt:
Auch Ihr code ausgeführt wird, bevor der DOM fertig geladen wurde. Sie können sicherstellen, dass alle in der DOM-Elemente, die geladen werden, indem die Fenster.onload event-handler. Aus der MDC-docs:
Also statt den code direkt, Sie würde dies tun:
Den Sie hinzufügen möchten Ihren Knoten zu
document.body
nichtdocument
:document.body
, nichtdocument
.Failed to execute 'insertBefore' on 'Node': The node before which the new node is to be inserted is not a child of this node.
Die Frage enthält nur einen Ausschnitt, nicht den ganzen code.