Μέθοδος insertBefore() του XML DOM

Ορισμός και χρήση

Η μέθοδος insertBefore() εισάγει έναν νέο υποκόμβο πριν από τον υπάρχοντα υποκόμβο.

Αυτή η μέθοδος επιστρέφει τον νέο υποκόμβο.

Γλώσσα γραμμής:

elementNode.insertBefore(new_node,existing_node)
Παράμετροι Περιγραφή
new_node Απαιτείται. Ο κόμβος που θα εισαχθεί.
existing_node Απαιτείται. Υπάρχουν κόμβοι. Εισάγετε το νέο κόμβο πριν από αυτόν τον κόμβο.

Συμβουλές και σημειώσεις:

Σημείωση:Ο Internet Explorer αγνοεί τους κενό κόμβους που δημιουργούνται μεταξύ των κόμβων (π.χ. χαρακτήρες νέας γραμμής), ενώ ο Mozilla δεν το κάνει. Επομένως, στην παρακάτω παράδειγμα, χρησιμοποιούμε μια συνάρτηση για να ελέγξουμε τον τύπο του τελευταίου κόμβου.

Ο τύπος του στοιχείου του κόμβου είναι 1, οπότε αν ο τελευταίος κόμβος δεν είναι στοιχείο κόμβου, μετακινείται στον προηγούμενο κόμβο και ελέγχει αν αυτός είναι στοιχείο κόμβου. Ο这个过程 συνεχίζεται μέχρι να βρεθεί ο τελευταίος κόμβος που ανήκει σε στοιχείο κόμβου. Με αυτόν τον τρόπο, θα λάβουμε σωστά αποτελέσματα τόσο στο Internet Explorer όσο και στο Mozilla.

Για περισσότερες πληροφορίες σχετικά με τις διαφορές μεταξύ του Internet Explorer και του περιηγητή Mozilla, επισκεφθείτε την ενότητα XML DOM του CodeW3C.com DOM περιηγητής το τμήμα αυτό.

παράδειγμα

Σε όλες τις παραδείξεις, θα χρησιμοποιούμε το αρχείο XML books.xmlκαι τη συνάρτηση JavaScript loadXMLDoc()

Το παρακάτω κομμάτι κώδικα δημιουργεί ένα νέο κελί <book> και το ενσωματώνει πριν από το τελευταίο στοιχείο <book> του έγγραφου:

//ελέγχου αν ο τελευταίος γιόνος είναι κόμβος στοιχείου
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));