XML DOM 이전 Sibling 속성
❮ 요소 개체
예시
다음 코드 조각은 " 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 및 대부분의 다른 브라우저는 빈 공백이나 새 줄을 텍스트 노드로 처리하지만 Internet Explorer는 처리하지 않습니다. 그래서 아래 예제에는 이전 형제 노드의 노드 유형을 확인하는 함수가 있습니다.
요소 노드의 nodeType은 1이므로 이전 형제 노드가 요소 노드가 아닌 경우 이전 노드로 이동하여 이 노드가 요소 노드인지 확인합니다. 이것은 이전 형제 노드(요소 노드여야 함)를 찾을 때까지 계속됩니다. 이렇게 하면 모든 브라우저에서 결과가 정확합니다.
팁: 브라우저 간의 차이점에 대해 자세히 알아보려면 XML DOM 자습서 의 DOM 브라우저 장을 방문하세요.
직접 체험해볼 수 있는 데모
❮ 요소 개체