Μέθοδος insertBefore() του XML DOM
Ορισμός και χρήση
Η μέθοδος insertBefore() μπορεί να εισάγει έναν νέο υποκόμβο πριν από έναν υπάρχοντα υποκόμβο.
Αυτός ο τρόπος μπορεί να επιστρέψει τον νέο υποκόμβο.
Γραμματική:
insertBefore(newchild,refchild)
Παράμετροι | Περιγραφή |
---|---|
newchild | Εισαγωγή νέου κόμβου |
refchild | Εισαγωγή νέου κόμβου πριν από αυτόν τον κόμβο |
Συμβουλές και σημειώσεις
Σημείωση:Ο Internet Explorer θα αγνοήσει τους κενά κόμβους που δημιουργούνται μεταξύ των κόμβων (π.χ. σύμβολα νέας γραμμής), ενώ ο Mozilla δεν θα κάνει αυτό. Επομένως, στις παρακάτω παραδείξεις, θα χρησιμοποιήσουμε μια συνάρτηση για να ελέγξουμε τον τύπο του τελευταίου υποκόμβου.
Ο τύπος του κόμβου του στοιχείου είναι 1, οπότε αν ο πρώτος υποκόμβος δεν είναι κόμβος στοιχείου, θα μετακινηθεί στον επόμενο κόμβο και θα συνεχίσει να ελέγχει αν ο κόμβος είναι κόμβος στοιχείου. Ολόκληρος ο διαδικασία θα συνεχιστεί μέχρι να βρεθεί ο πρώτος κόμβος στοιχείου. Με αυτόν τον τρόπο, μπορούμε να πάρουμε σωστά τα μεθόδους στο Internet Explorer και στο Mozilla.
Συμβουλή:Για περισσότερες πληροφορίες σχετικά με τις διαφορές του XML DOM μεταξύ του IE και του Mozilla πλοηγού, παρακαλώ επισκεφθείτε το DOM πλοηγός κεφάλαια.
παράδειγμα
Σε όλες τις παραδείξεις, θα χρησιμοποιούμε αρχεία XML books.xml,κατάλληλα για τις συνάρτησεις JavaScript loadXMLDoc()}。
Η παρακάτω σκηνή μπορεί να δημιουργήσει ένα νέο στοιχείο <book> και να το εισάγει πριν από το τελευταίο στοιχείο <book> στο έγγραφο:
//Ελέγξτε αν ο τελευταίος γιόρκος είναι ένας κόμβος στοιχείου
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));