XML DOM insertBefore() -menetelmä
Määrittely ja käyttö
insertBefore() -menetelmä voi lisätä uuden lapsisolmun olemassa olevan lapsisolmun eteen.
Tämä menetelmä voi palauttaa uuden lapsisolmun.
Syntaksi:
insertBefore(newchild, refchild)
Parametrit | Kuvaus |
---|---|
newchild | Lisää uusi solmu |
refchild | Lisää uusi solmu tämän solmun eteen |
Vinkit ja huomiot
Huomio:Internet Explorer ei huomioi välisissä solmuissa luotuja tyhjiä tekstisolmuja (esim. rivinvaihtomerkit), mutta Mozilla tekee niin. Siksi seuraavissa esimerkeissä käytämme funktiota tarkistamaan viimeisen lapsisolmun solmun tyyppiä.
Elementin solmun solmun tyyppi on 1, joten jos ensimmäinen lapsisolmu ei ole elementti, se siirtyy seuraavaan solmuun ja jatkaa tarkistusta, onko tämä solmu elementti. Tämä prosessi jatkuu, kunnes ensimmäinen elementti lapsisolmu löytyy. Tällä tavalla voimme saada oikean menetelmän Internet Explorerissä ja Mozillassa.
Vinkki:Lisätietoja IE ja Mozilla-selaimien XML DOM:n välisistä eroista löydät DOM-selain Lukuja.
Esimerkki
Kaikissa esimerkeissä käytämme XML-tiedostoja books.xmlja JavaScript-funktio loadXMLDoc()}。
Alla oleva osa voi luoda uuden <book>-solmun ja lisätä sen viimeisen <book>-elementin eteen dokumentissa:
//Tarkista, onko viimeinen lapsisolmu elementti
function get_lastchild(n)
{
var x=n.lastChild;
while (x.nodeType!=1)
{
x=x.previousSibling;
}
return x;
}
xmlDoc=loadXMLDoc("books.xml");
var newNode=xmlDoc.createElement("book");
var newTitle=xmlDoc.createElement("title");
var newText=xmlDoc.createTextNode("A Notebook");
newTitle.appendChild(newText);
newNode.appendChild(newTitle);
xmlDoc.documentElement.insertBefore(newNode,get_lastchild(x));