XML DOM insertBefore() methode

Definitie en gebruik

De insertBefore() methode voegt een nieuwe onderliggende knoop in voor een bestaande onderliggende knoop.

Deze methode retourneert het nieuwe onderliggende knoop.

Syntaxis:

elementNode.insertBefore(new_node, existing_node)
Parameters Beschrijving
new_node Verplicht. De knoop die moet worden ingevoegd.
existing_node Verplicht. Bestaande knoop. Voeg een nieuwe knoop in voor deze knoop.

Tips en opmerkingen:

Opmerking:Internet Explorer negeert de lege tekstknooppunten die tussen knopen worden gegenereerd (bijvoorbeeld entertekens), terwijl Mozilla dit niet doet. Daarom gebruiken we in het volgende voorbeeld een functie om het node-type van de laatste onderliggende knoop te controleren.

De node-type van elementknooppunten is 1, dus als de laatste onderliggende knoop geen elementknoop is, wordt naar de vorige knoop verplaatst en wordt gecontroleerd of deze een elementknoop is. Dit proces gaat door tot de laatste onderliggende knoop die een elementknoop is gevonden. Op deze manier wordt een correct resultaat verkregen in Internet Explorer en Mozilla.

Voor meer informatie over de verschillen tussen IE en Mozilla-browsers, bezoek de XML DOM-tutorial op CodeW3C.com. DOM-browser in deze sectie.

voorbeeld

In alle voorbeelden gebruiken we de XML-bestanden books.xmlen de JavaScript-functie loadXMLDoc().

Het volgende codefragment maakt een nieuwe <book> knoop aan en plakt deze voor de laatste <book> element in het document:

//check if the last childnode is an element node
function get_lastchild(n)
{
x=n.lastChild;
while (x.nodeType!=1)
  {
  x=x.previousSibling;
  }
return x;
}
xmlDoc=loadXMLDoc("books.xml");
newNode=xmlDoc.createElement("book");
newTitle=xmlDoc.createElement("title");
newText=xmlDoc.createTextNode("A Notebook");
newTitle.appendChild(newText);
newNode.appendChild(newTitle);
xmlDoc.documentElement.insertBefore(newNode,get_lastchild(x));