XML DOMpreviousSiblingプロパティ
❮要素オブジェクト
例
次のコードフラグメントは、「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();
//
Check if the previous sibling node is an element node
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;
}
上記のコードの出力は次のようになります。
author = Giada De Laurentiis
Previous sibling: title = Everyday Italian
定義と使用法
previousSiblingプロパティは、選択した要素の前の兄弟ノード(同じツリーレベルの前のノード)を返します
そのようなノードがない場合、このプロパティはnullを返します。
構文
elementNode.previousSibling
ヒントと注意
注: Firefoxおよびその他のほとんどのブラウザーは、空の空白または新しい行をテキストノードとして扱いますが、InternetExplorerは扱いません。したがって、以下の例では、前の兄弟ノードのノードタイプをチェックする関数があります。
要素ノードのnodeTypeは1であるため、前の兄弟ノードが要素ノードでない場合は、前のノードに移動し、このノードが要素ノードであるかどうかを確認します。これは、前の兄弟ノード(要素ノードである必要があります)が見つかるまで続きます。このように、結果はすべてのブラウザで正しくなります。
ヒント:ブラウザー間の違いについて詳しくは、 XMLDOMチュートリアルのDOMブラウザーの章をご覧ください。
試してみるデモ
❮要素オブジェクト