Properti previousSibling DOM XML
Definisi dan Penggunaan
previousSibling
Sifat ini mengembalikan node同级 terdahulu elemen pilihan (node yang terdahulu di tingkatan pohon yang sama).
Jika tiada node seperti itu, sifat ini akan mengembalikan null.
Syarat
elementNode.previousSibling
Perhatian:Firefox dan kebanyakan pelayar lain akan melihat ruang kosong atau baris kosong sebagai node teks, manakala Internet Explorer tidak. Oleh itu, di contoh di bawah, kami menggunakan fungsi untuk memeriksa jenis node node同级 terdahulu.
N节点的 nodeType ialah 1, jadi jika node同级 terdahulu bukan N, pindahkan kepada node terdahulu dan periksa sama ada node itu adalah N. Ini akan terus berlaku sehingga mencari node同级 terdahulu (mesti adalah N). Demikian, hasilnya akan betul di semua pelayar.
提示:欲了解更多有关浏览器之间差异的信息,请访问 XML DOM 教程中的 DOM 浏览器章节。
实例
例子 1
下面的代码将 "books.xml" 加载到 xmlDoc 中,并从第一个 <author> 元素获取前一个同级节点:
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>Previous sibling: " + y.nodeName + " = " + y.childNodes[0].nodeValue; }
例子 2
使用 nextSibling,获取节点的下一个同级节点:
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; }