XML DOM insertBefore()-metodi

Määrittely ja käyttö

insertBefore()-metodi lisää uuden lapsisolmun olemassa olevan lapsisolmun eteen.

Tämä metodi palauttaa tämän uuden lapsisolmun.

Syntaksi:

elementNode.insertBefore(new_node,existing_node)
Parametrit Kuvaus
new_node Välttämätön. Lisättävä solmu.
existing_node Välttämätön. Olemassa oleva solmu. Lisää uusi solmu tämän solmun eteen.

Vinkit ja huomautukset:

Huomautus:Internet Explorer kiinnittää huomiota välisissä solmuissa luotuihin tyhjiösolmuun (esim. rivinvaihtomerkit), mutta Mozilla ei tee niin. Siksi alla olevassa esimerkissä käytämme funktiota tarkistamaan viimeisen lapsisolmun solmun tyyppi.

Elementin solmun solmun tyyppi on 1, joten jos viimeinen lapsisolmu ei ole elementti, siirry edelliseen solmuun ja tarkista, onko tämä solmu elementti. Tämä prosessi jatkuu, kunnes löydetään viimeinen elementti, joka on lapsisolmu. Tällä tavalla saadaan oikea tulos Internet Explorerissa ja Mozillassa.

Lisätietoja Internet Explorerin ja Mozillan selaimien välisistä eroista löydät CodeW3C.com-sivuston XML DOM-opetusohjelmasta DOM-selain tässä luvussa.

esimerkki

Kaikissa esimerkeissä käytämme XML-tiedostoa books.xmlja JavaScript-funktio loadXMLDoc()

Tämä koodikappale luo uuden <book>-elementin ja lisää sen dokumentin viimeisen <book>-elementin eteen:

//Tarkista, onko viimeinen lapsisolmu elementtisolmu
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));