XML DOM previousSibling 属性
XML DOM Node 对象的 previousSibling 属性返回元素之前紧接的节点(处于同一树层级中)
如果无此节点,则该属性返回 null
语法
nodeObject.previousSibling
Firefox 以及大多数其它的浏览器,会把节点间生成的空的空格或者换行当作文本节点,而 Internet Explorer 会忽略节点间生成的空白文本节点
因此,在下面的范例中,我们会使用一个函数来检查上一个同级节点的节点类型
元素节点的节点类型是 1,因此如果上一个同级节点不是一个元素节点,它就会移至下一个节点,然后继续检查此节点是否为元素节点
整个过程会一直持续到上一个同级元素节点被找到为止
通过这个方法,我们就可以在所有的浏览器中得到正确的结果
如果想要了解更多有关浏览器差异的知识,可以访问我们的的 XML DOM 浏览器
范例
下面的范例从第一个 <author> 元素取得上一个同级节点
// 获取元素节点的上一个同级节点 function get_previoussibling(n) { x=n.previousSibling; while (x.nodeType!=1) { x=x.previousSibling; } return x; } xmlDoc=loadXMLDoc("/static/media/dom/books.xml"); x=xmlDoc.getElementsByTagName("author")[0]; document.write(x.nodeName); document.write(" = "); document.write(x.childNodes[0].nodeValue); y=get_previoussibling(x); document.write("<br>Previous sibling: "); document.write(y.nodeName); document.write(" = "); document.write(y.childNodes[0].nodeValue);
上面的代码将输出:
author = Giada De Laurentiis Previous sibling: title = Everyday Italian