Properti previousSibling DOM XML

Definisi dan Penggunaan

previousSibling Properti ini mengembalikan node sebelumnya yang terdekat (node berikutnya di tingkat pohon yang sama).

Jika tidak ada node seperti itu, properti ini mengembalikan null.

Syarat

nodeObject.previousSibling
Tips dan Catatan

Perhatian:Firefox dan sebagian besar peramban lainnya akan menganggap spasi atau baris kosong sebagai node teks, sedangkan Internet Explorer tidak. Dalam contoh di bawah ini, kita menggunakan fungsi untuk memeriksa tipe node yang sama tingkat sebelumnya.

Node element nodeType adalah 1, jadi jika node yang sama tingkat sebelumnya bukan node element, pindah ke node berikutnya dan periksa apakah node itu adalah node element. Ini akan terus berlanjut sampai menemukan node yang sama tingkat sebelumnya (mesti menjadi node element). Demikian pula, hasilnya benar di semua peramban.

Petunjuk:Untuk mendapatkan informasi lebih lanjut tentang perbedaan antara browser, kunjungi bab DOM Browser di tutorial XML DOM.

contoh

contoh 1

Kode di bawah ini akan mengambil "books.xml" ke xmlDoc dan mengambil adik sebelumnya dari elemen <author> pertama:

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
   if (this.readyState == 4 && this.status == 200) {
       myFunction(this);
   }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
// 检查前一个同级节点是否是元素节点
function get_previoussibling(n) {
    var x = n.previousSibling;
    while (x.nodeType != 1) {
        x = x.previousSibling;
    }
    return x;
}
function myFunction(xml) {
    var xmlDoc = xml.responseXML;
    var x = xmlDoc.getElementsByTagName("author")[0];
    var y = get_previoussibling(x);
    document.getElementById("demo").innerHTML = x.nodeName + " = " +
    x.childNodes[0].nodeValue +
    "<br>Adik sebelumnya: " + y.nodeName + " = " +
    y.childNodes[0].nodeValue;
}

Coba Sendiri

contoh 2

获取节点的下一个同级节点:

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        myFunction(this);
    }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
// 检查下一个同级节点是否是元素节点
function get_nextsibling(n) {
    var x = n.nextSibling;
    while (x.nodeType != 1) {
        x = x.nextSibling;
    }
    return x;
}
function myFunction(xml) {
    var xmlDoc = xml.responseXML;
    var x = xmlDoc.getElementsByTagName("title")[0];
    var y = get_nextsibling(x);
    document.getElementById("demo").innerHTML = x.nodeName + " = " + 
    x.childNodes[0].nodeValue +
    "<br>Next sibling: " + y.nodeName + " = " + 
    y.childNodes[0].nodeValue;
}

Coba Sendiri