본문 바로가기
Javascript/연습

여행준비물 점검 배열써서 하기

by SEOKIHOUSE 2023. 6. 1.

 


<!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>여행준비물 점검 목록</title>
    <script src="js/travel.js"></script>
    <style>
        * {
            padding: 0;
            margin: 0;
        }
        #wrap {
            display: grid;
            grid-template-rows: 100px 50px 300px;
            justify-content: center;
            align-items: center;
            
        }
        ul, li, ol {
            list-style: none;
        }
        #div2 {
            justify-self: center;
            
        }
        #div3 {
            align-self: start;
        }
    </style>
</head>
<body>
    <!-- x를 누르면 사라지고 추가를 누르면 나오고 -->
    <div id="wrap">
        <div>
            <h1>여행준비물 점검 목록</h1>
        </div>
        <div id="div2">
            <input id="input" type="text" name="txt" value="">
            <button id="button">추가</button>
        </div>
        <div id="div3">
            <ul id="ul">

            </ul>
        </div>
    </div>
</body>
</html>
// let arr = ['aaa','bbb','ccc'];
// arr.push('ddd');
// document.write(arr+"<br>");  //aaa bbb ccc ddd
// arr.splice(1,1);
// document.write(arr+"<br>");   // aaa ccc ddd
window.onload = function () {
    let input = document.querySelector("#input");
    let button = document.getElementById("button");
    let ul = document.getElementById("ul");

    button.addEventListener("click", btn);



    let arr = [];

    function btn() {
        if (!input.value) {
            //자바스크립트 자료형에서 false로 반환되는 값은
            //"", null, undefined, 0, NaN 나머지는 true라 한다
            alert("공백입력 불가능");
        } else {
            arr.push(input.value);
            input.value = ""; //입력하고 공백 만들어주기

            showList();

            let button2 = document.querySelectorAll(".item");
            for (let i = 0; i < button2.length; i++) {
                button2[i].addEventListener("click", del);
            }
        }
    };

    //1번방법!!
    function showList() {
        let string = "";
        // ul.innerHTML = "";
        for (let i = 0; i < arr.length; i++) {
            string += "<li data-idx =" + i + ">" + arr[i] + "<button class='item' id='btn2'>X</button></li>";
            // ul.innerHTML += "<li class='item' id='it" + i + "'>" + arr[i] + "<button id='btn2'>X</button></li>";
        }
        ul.innerHTML = string;
    }

    //2번방법!!
    // function showList() { 
    //     ul.innerHTML = "";
    //     for (let i = 0; i < arr.length; i++) {
    //         ul.innerHTML += "<li class='item' id='it" + i + "'>" + arr[i] + "<button id='btn2'>X</button></li>";
    //     }
    // }

    function del() {
        // this =자기자신
        let index = this.getAttribute("data-idx");
        arr.splice(index, 1);
        showList();

        //여기도 써줘야한다
        let button2 = document.querySelectorAll(".item");
        for (let i = 0; i < button2.length; i++) {
            button2[i].addEventListener("click", del);
        }
    };



};

x버튼으로 삭제하면~