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
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; }
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; }