XML DOM previousSibling attribute

Definition and Usage

previousSibling Ang attribute na ito ay ibabalik ang nakaraang同级 na node ng pinili na element (ang nakaraang node sa parehong antas ng puno).

Kung walang ganoong node, ang attribute na ito ay ibabalik na null.

Grammar

elementNode.previousSibling
Tips and Notes

Babala:Ang Firefox at karamihan sa ibang browser ay magtuturing ng walang laman o tabik bilang text node, habang ang Internet Explorer ay hindi. Kaya't sa mga sumusunod na halimbawa, gamit namin ang isang function upang suriin ang uri ng node ng nakaraang同级 na node.

Ang nodeType ng element node ay 1, kaya't kung ang nakaraang同级 na node ay hindi element node, ilipat sa nakaraang node at suriin kung ang node na ito ay element node. Ito ay magpapatuloy, hanggang sa makita ang nakaraang同级 na node (dapat ito ay element node). Gayunpaman, ang resulta ay tama sa lahat ng browser.

提示:如需了解有关浏览器之间差异的更多信息,请访问 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;
{}

亲自试一试