XML DOM lastChild 属性
定義と用法
lastChild
属性は選択された要素の最後の子ノードを返します。
選択されたノードに子ノードがない場合、この属性は NULL を返します。
文法
elementNode.lastChild
注意:Firefox やほとんどの他のブラウザは空白や改行をテキストノードとして処理しますが、Internet Explorer はしません。したがって、以下の例では、最後の子ノードのノードタイプを確認するための関数を使用します。
要素ノードの nodeType は 1 ですので、最後の子ノードが要素ノードでない場合、前のノードに移動し、そのノードが要素ノードかどうかを確認します。これが最後の子ノード(要素ノードでなければなりません)を見つけるまで続けられます。これにより、すべてのブラウザで結果が正確になります。
ヒント:ブラウザ間の差異に関する詳細情報を知りたい場合は、XML DOM 教程の DOM ブラウザセクションにアクセスしてください。
例
以下のコードは "books.xml" を xmlDoc にロードし、最後の子ノードを取得します: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_lastchild(n) { var x = n.lastChild; while (x.nodeType != 1) { x = x.previousSibling; } return x; } function myFunction(xml) { var x, i, txt, firstNode, xmlDoc; xmlDoc = xml.responseXML; x = xmlDoc.documentElement; txt = ""; firstNode = get_lastchild(x); for (i = 0; i < firstNode.childNodes.length; i++) { if (firstNode.childNodes[i].nodeType == 1) { // ただし、要素ノードのみを処理します txt += firstNode.childNodes[i].nodeName +"}}" " = " + firstNode.childNodes[i].childNodes[0].nodeValue + "<br>"; } } document.getElementById("demo").innerHTML = txt; }