XML DOM lastChild 속성

정의와 사용법

lastChild 속성은 선택된 요소의 마지막 자식 노드를 반환합니다.

선택된 노드가 자식 노드가 없으면 이 속성은 NULL을 반환합니다.

문법

elementNode.lastChild
Tips and Notes

주의: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;
}

직접 시도해보세요