본문 바로가기
오류 처리

parentNode와 onclick문제

by dal_been 2023. 2. 23.
728x90
<body>  
        <div id="container" class="con-min-width">
            <div id="con">
                <div id="namecon">
                    <div id="name">To-do-list</div>
                </div>

                <div id="intext">
                    <input type="text" id="text" onkeyup="enterKey()" placeholder="할일을 입력해주세요">
                    <button id="sub">입력완료</button>
                </div>

                <div id="mcon">
                    <ul id="memo">

                    </ul>
                </div>

            </div>
        </div>
   </body>
        <script>
            const text=document.getElementById('text');
            let sub=document.getElementById('sub');
            const memo=document.getElementById('memo');

            sub.onclick= save;

            let li;
            let i=0;
            function save(){

                let text1=text.value;

                if(text1==''){
                    alert("공부안하냐!?");
                }else{
                    
                    li=document.createElement('li');
                    li.textContent=text1;
                    li.id='list'+i;
                    memo.appendChild(li);
                    text.value='';
                    i++;
                }
                
                for(let k=0;k<=i;k++){
                    let list=document.querySelectorAll('li')[k];
                    list.onclick=function () {
                    list.parentElement.removeChild(list);}
                }
            }

            function enterKey(){
                if(window.event.keyCode==13){
                    save();
                }
            }
        </script>

작동은 되지만 오류뜸

오류: Cannot set properties of undefined (setting 'onclick')

즉 list의 값이 없다는 뜻인거같음..왜??

----> li값들을 넣은 후 삭제했을때 삭제한 li들을 찾는 것같음

 

그래서 

for위로 list를 옮기고 [k]를 for 문안으로 옮김 + for 문조건문 안에 있는 i또한 list.length로 바꾸기

 

그럼 해결완료...

 

그래도 해결안되는점이...

document.queryselectorall을 elementsbytagname?으로 바꿨을때 겁나 이상하게 됨.. 왜인지 모르겠음이건...