JS

[JS] 자바스크립트 removeChild

져니져니95 2021. 3. 23. 15:54

2020.03.23(화)

블록체인 기반 핀테크 및 응용 SW 개발자 양성과정 여덟째날

 

어제는 creatElement와 appendChild를 사용하여 html 요소를 추가해보았다. 그래서 오늘은 삭제하는 것을 배워보았다.  

(대문자 소문자 구분해서 쓰는 것이 중요중요! 안그러면 작동 안할 수 있음!!!!)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        ul,li{
            list-style: none;
        }
        #header{
            height: 200px;
            background-color: blueviolet;
        }
        #title{
            text-align: center;
            color: chartreuse;
        }
        #searching{
            text-align: center;
            margin-top: 100px;
        }
        #box_input{
            width: 300px;
            height: 30px;
        }
        #content{
            text-align: center;
            margin-top: 20px;
        }
        #content>li{
            margin-top: 20px;
        }
    </style>
</head>
<body>
    <div id="wrap">
        <div id="header">
            <div id="title">
                <h1>To do list</h1>
            </div>
            <div id="searching">
                <input type="text" id="box_input" placeholder="글자를 입력해주세요">
                <input type="button" value="★" onclick="btnEvent();">
            </div>
        </div>
        <ul id="content">
            <li>content1</li>
            <li>content2</li>
            <li>content3</li>
        </ul>
    </div>
    <script type="text/javascript">
    function btnEvent(){
        box_input = document.querySelector('#box_input');
        content = document.querySelector('#content');
        li = document.createElement('li');
        li.innerHTML = box_input.value;
        delBtn = document.createElement('button');
        delBtn.innerHTML = 'X';
        delBtn.onclick = function(){
            content.removeChild(this.parentNode);
        }
        content.appendChild(li); 
        li.appendChild(delBtn);
    }
    </script>
</body>
</html>

 

 

 

        box_input = document.querySelector('#box_input');

        -> input box 아이디 값을 받아서 변수에 담았다.

 

        content = document.querySelector('#content');

        -> 내용 출력하는 영역 설정 

 

        li = document.createElement('li');

        -> 내용 출력하는 최소단위 엘리먼트 

 

        li.innerHTML = box_input.value;

        -> li안에 내용을 넣기 위해서 : box_input에 있는 내용을 넣기 위해

 

        delBtn = document.createElement('button');

        -> li안에 버튼을 넣기 위해 <button></button>만 생성함 

 

        delBtn.innerHTML = 'X';

        -> 버튼 안에 내용을 넣기 위해 <button>X</button> 

        

        delBtn.onclick = function(){

           content.removeChild(this.parentNode);

        }

        -> content = 내용을 출력한 영역 설정 부분이다.

                removeChild() = 메서드 안에 있는 값을 노드제거

                this.parentNode = this 개념 이해

                                       parentNode 나의 부모엘리먼트

this가 가르키는 것은 X박스!!!

X박스의 부모는 li 엘리먼트결국 콘텐트 안의 해당 X박스의 엘리먼트를 remove 됨

        

        li.appendChild(delBtn); 

        -> li엘리먼트 안에 여태동안 만들었던 delBtn을 넣는다

            <li><button>X</button></li>

     

        content.appendChild(li);

        -> content 안에 li를 넣어서 완벽하게 만든다

 

 

* 결과물 영상