Notice
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
관리 메뉴

Jade_o.o

[javascript] JavaScript DOM - 다른 노드 접근하기 본문

JavaScript

[javascript] JavaScript DOM - 다른 노드 접근하기

by jade 2024. 1. 17. 17:49

JavaScript 다른 노드에 접근하는 방법에 대해 알아보자

 

밑에 보이는 코드는 전체 html, css 코드이다. 참고 요함

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>DOM 다른 노드 접근하기</title>
</head>
<body>
    <div class = "container">
        <div class="box" id="green">1</div>
        previous 테스트
        <!-- 주석 previous 테스트 -->
        <div class="box" id="red">2</div>
        next 테스트
        <div class="box">3</div>
        <div class="box">4</div>
        <div class="box">5</div>
    </div>

    <button onclick="getParent()">getParent</button>
    <button onclick="pElSibling()">pElSibling</button>
    <button onclick="pNoSibling()">pNoSibling</button>
    <button onclick="pElSibling()">nElSibling</button>
    <button onclick="nNoSibling()">nNoSibling</button>

    <script>

    </script>

</body>
</html>

 

 

 

parengNode : 부모 요소를 가져온다.
    let container = document.getElementById('container');
    let greenBox = document.getElementById('green');
    let redBox = document.getElementById('red');

// parentNode : 부모 요소를 가져온다.
    function getParent(){
        console.log(greenBox.parentNode);
    }
        
// html 코드
<div class = "container">
    <div class="box" id="green">1</div>
    previous 테스트
    <!-- 주석 previous 테스트 -->
    <div class="box" id="red">2</div>
    next 테스트
    <div class="box">3</div>
    <div class="box">4</div>
    <div class="box">5</div>
</div>

<button onclick="getParent()">getParent</button>
<button onclick="pElSibling()">pElSibling</button>
<button onclick="pNoSibling()">pNoSibling</button>
<button onclick="pElSibling()">nElSibling</button>
<button onclick="nNoSibling()">nNoSibling</button>

html 코드와 함께 보면 getParent button을 누를 시

console.log에 부모요소를 가져온 것을 확인할 수 있다.

 

 

 

 

previousElementSibling : 이전 형제를 선택(Element만 카운트하여 반환함)
    let container = document.getElementById('container');
    let greenBox = document.getElementById('green');
    let redBox = document.getElementById('red');

// 이전 형제를 선택
    function pElSibling(){
        console.log(redBox.previousElementSibling);
    }
        
// html 코드
<div class = "container">
    <div class="box" id="green">1</div>
    previous 테스트
    <!-- 주석 previous 테스트 -->
    <div class="box" id="red">2</div>
    next 테스트
    <div class="box">3</div>
    <div class="box">4</div>
    <div class="box">5</div>
</div>

<button onclick="getParent()">getParent</button>
<button onclick="pElSibling()">pElSibling</button>
<button onclick="pNoSibling()">pNoSibling</button>
<button onclick="pElSibling()">nElSibling</button>
<button onclick="nNoSibling()">nNoSibling</button>

html 코드와 함께 보면 pElsibling button을 누를 시

console.log에 이전 형제( Element만 카운트하여 반환 )를 선택하여 보여주는 것을 확인 할 수 있다.

 

 

 

 

 

previousSibling : 이전 형제를 선택 (Element는 물론 #text와 주석까지 node로 카운트하여 반환함)
    let container = document.getElementById('container');
    let greenBox = document.getElementById('green');
    let redBox = document.getElementById('red');

// 이전 형제를 선택2
    function pNoSibling(){
        console.log(redBox.previousSibling);
    }
    
// html 코드
<div class = "container">
    <div class="box" id="green">1</div>
    previous 테스트
    <!-- 주석 previous 테스트 -->
    <div class="box" id="red">2</div>
    next 테스트
    <div class="box">3</div>
    <div class="box">4</div>
    <div class="box">5</div>
</div>

<button onclick="getParent()">getParent</button>
<button onclick="pElSibling()">pElSibling</button>
<button onclick="pNoSibling()">pNoSibling</button>
<button onclick="pElSibling()">nElSibling</button>
<button onclick="nNoSibling()">nNoSibling</button>

html 코드와 함께 보면 pNosibling button을 누를 시

 

console.log에 이전 형제(Element는 물론 #text와 주석까지 node로 카운트하여 반환) 를 선택하여 보여주는 것을 확인 할 수 있다.

 

 

 

 

 

nextElementSibling : 다음 형제를 선택 - 공백, 텍스트를 포함하지 않은 Element(요소)만 가져온다.(공백, text등은 x)
    let container = document.getElementById('container');
    let greenBox = document.getElementById('green');
    let redBox = document.getElementById('red');

// 다음 형제를 선택1
    function nElSibling(){
        console.log(redBox.nextElementSibling);
    }
    
// html 코드
<div class = "container">
    <div class="box" id="green">1</div>
    previous 테스트
    <!-- 주석 previous 테스트 -->
    <div class="box" id="red">2</div>
    next 테스트
    <div class="box">3</div>
    <div class="box">4</div>
    <div class="box">5</div>
</div>

<button onclick="getParent()">getParent</button>
<button onclick="pElSibling()">pElSibling</button>
<button onclick="pNoSibling()">pNoSibling</button>
<button onclick="pElSibling()">nElSibling</button>
<button onclick="nNoSibling()">nNoSibling</button>

html 코드와 함께 보면 nElsibling button을 누를 시

console.log에 Element만 보여주는 것을 확인 할 수 있다.

 

 

 

 

 

nextSibling : 다음 형제를 선택 - 공백이든, 텍스트든 가리지 않고 가져온다.
    let container = document.getElementById('container');
    let greenBox = document.getElementById('green');
    let redBox = document.getElementById('red');

// 이전 형제를 선택2
    function pNoSibling(){
        console.log(redBox.previousSibling);
    }
    
// html 코드
<div class = "container">
    <div class="box" id="green">1</div>
    previous 테스트
    <!-- 주석 previous 테스트 -->
    <div class="box" id="red">2</div>
    next 테스트
    <div class="box">3</div>
    <div class="box">4</div>
    <div class="box">5</div>
</div>

<button onclick="getParent()">getParent</button>
<button onclick="pElSibling()">pElSibling</button>
<button onclick="pNoSibling()">pNoSibling</button>
<button onclick="pElSibling()">nElSibling</button>
<button onclick="nNoSibling()">nNoSibling</button>

html 코드와 함께 보면 nNosibling button을 누를 시

 

console.log를 확인해보면 공백, 텍스트를 확인할 수 있다.