HTML DOM의 nextSibling 속성은 지정된 요소 노드 바로 다음에 위치한 노드를 반환합니다. DOM 트리에서 형제 노드 간의 관계를 탐색할 때 유용하게 사용됩니다.
nextSibling 속성의 주요 특징
이 속성을 사용할 때 반드시 기억해야 할 중요한 특징이 있습니다.
참고: nextSibling 속성은 텍스트 노드와 주석 노드를 무시하지 않습니다. 따라서 HTML 코드에서 요소 사이에 공백이나 줄바꿈이 있으면, 해당 공백도 하나의 텍스트 노드로 인식되어 반환될 수 있습니다. 이 점에 유의하여 마크업을 작성해야 합니다.
구문
nextSibling 노드를 반환하는 기본 구문은 다음과 같습니다.
nodeList.nextSibling
예제
HTML DOM nextSibling 속성의 실제 동작을 확인할 수 있는 예제입니다. 아래 코드는 요일 목록에서 'Saturday' 항목의 다음 형제 노드인 'Sunday'를 찾아 화면에 출력합니다.
<!DOCTYPE html>
<html>
<head>
<title>HTML DOM nextSibling</title>
<style>
form {
width:70%;
margin: 0 auto;
text-align: center;
}
* {
padding: 2px;
margin:5px;
}
input[type="button"] {
border-radius: 10px;
}
ul{
width: 30%;
margin: 0 auto;
}
</style>
</head>
<body>
<form>
<fieldset>
<legend>HTML-DOM-nextSibling</legend>
<h3>Grocery Store</h3>
<ul>
<li>Monday</li>
<li>Tuesday</li>
<li>Wednesday</li>
<li>Thursday</li>
<li>Friday</li>
<li id="Today">Saturday</li><li>Sunday</li>
// <li> 요소 사이에 공백을 추가하지 마세요. nextSibling은 공백(텍스트 노드)을 무시하지 않습니다
</ul>
<input type="button" onclick="getTimmings()" value="Get Sale Day">
<div id="divDisplay"></div>
</fieldset>
</form>
<script>
var divDisplay = document.getElementById("divDisplay");
var dayToday = document.getElementById("Today");
function getTimmings() {
divDisplay.textContent = 'Sale on last day of week: '+dayToday.nextSibling.textContent;
}
</script>
</body>
</html>실행 결과
'Get Sale Day' 버튼을 클릭하기 전 화면은 다음과 같습니다.

버튼을 클릭하면 JavaScript가 'Today' ID를 가진 Saturday 요소의 nextSibling을 찾아 그 텍스트 내용을 출력합니다. 결과는 다음과 같습니다.

정리
nextSibling 속성은 DOM 탐색 시 매우 유용하지만, 텍스트 노드까지 포함하여 반환한다는 점을 항상 염두에 두어야 합니다. 만약 요소 노드만 필요하다면 nextElementSibling 속성을 사용하는 것이 더 안전하고 직관적인 방법입니다. 이 속성은 텍스트나 주석 노드를 건너뛰고 다음 요소 노드만 반환하기 때문입니다.