Metode insertBefore() DOM XML

Definisi dan penggunaan

Metode insertBefore() memasukkan node anak baru sebelum node anak yang sudah ada.

Metode ini mengembalikan node anak baru.

Syarat:

elementNode.insertBefore(new_node,existing_node)
Parameter Deskripsi
new_node Diperlukan. Node yang akan dimasukkan.
existing_node Diperlukan. Node yang sudah ada. Masukkan node baru sebelum node ini.

Petunjuk dan keterangan:

Keterangan:Internet Explorer akan mengabaikan node teks kosong yang dihasilkan antara node (seperti karakter baris baru), sementara Mozilla tidak melakukan hal ini. Oleh karena itu, di contoh di bawah ini, kami menggunakan fungsi untuk memeriksa jenis node anak terakhir.

Jenis node untuk node elemen adalah 1, jadi jika node anak terakhir bukan node elemen, pindah ke node sebelumnya dan periksa apakah node ini adalah node elemen. Proses ini akan terus berlanjut sampai menemukan node anak terakhir yang termasuk node elemen. Dengan metode ini, hasil yang benar akan didapatkan di Internet Explorer dan Mozilla.

Untuk konten yang lebih banyak tentang perbedaan antara Internet Explorer dan Mozilla browser, silakan kunjungi tutorial XML DOM di CodeW3C.com Pemetaan DOM pada bagian ini.

contoh

Dalam semua contoh, kami akan menggunakan berkas XML books.xmldan fungsi JavaScript loadXMLDoc()

Blok kod di bawah ini mencipta sebuah node <book> baru dan memasukkannya sebelum elemen <book> terakhir dalam dokumen:

//cek jika node anak terakhir adalah node elemen
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));