5 글 보임 - 1 에서 5 까지 (총 5 중에서)
-
글쓴이글
-
2022년 9월 16일 23:47 #46729

투썸참가자<body> <div class="main"> <h1>ToDoList</h1> <form> <input type="text" placeholder="새로운 할 일" name="todo"> <button type="submit"><b>추가</b></button> </form> <div class="todolist"></div> </div> <script>
init();
function init(){ let input = document.querySelector('input'); let ul = document.querySelector('ul'); document.querySelector('form').addEventListener('submit', function(e){e.preventDefault(); addTask(); input.value = ''; input.focus();}) //입력창 비워주기}); ul.addEventListener('click', function(e){ if(e.target.className == 'delete') e.target.parentNode.remove();});function addTask(){ let li = document.createElement('li'); li.innerHTML = `<span class="delete">x</span><label>${input.value}</label>`; ul.appendChild(li); } } </script>작동이 잘되다가 위 코드에서 addTask 함수안에 let li = document.createElement('li'); 를 밖으로 꺼내서 init 함수안에 선언하니 작동이 안됩니다 addTask 함수를 없애고 풀어봐도 let li = document.createElement('li'); li.innerHTML = `<span class="delete">x</span><label>${input.value}</label>`; 이 두줄 사이에 한문장이라도 들어오면 작동이 이상해지는데 함수안에선 변수선언 어디에서 해도 전부 호이스팅 되는줄알았는데 왜안되는지 너무궁금합니다 자기가 속해있는 상위함수안에 변수를 선언하면 되야할거같은데 안되네요 ㅠ 도와주세요 선생님 ..2022년 9월 17일 16:09 #46786
투썸참가자<div class="todolist"> 밑에 < u l >< / u l > 이거 붙여쓰기하고 등록하니 글에서 없어지네요 오류인가 모르겠습니다
저것 넣고 다시했을때 실행이 잘되는데 위 코드에서 addTask 함수안에 let li = document.createElement('li'); 를 밖으로 꺼내서 init 함수안에 선언하니 작동이 안되네요 addTask 함수를 없애고 풀어봐도 let li = document.createElement('li'); li.innerHTML = `<span class="delete">x</span><label>${input.value}</label>`; 이 두줄 사이에 한문장이라도 들어오면 작동이 이상해지는데 그이유를 찿긴 힘든가요 일할때도 이럴수있을까봐 겁나네요 ..
< u l >< / u l >
2022년 9월 17일 19:48 #46817
codingapple키 마스터let li를 밖에 빼면 버튼누를 때 마다 <li>를 append 해주는게 아니라 갈아치워줘서 그런듯요 나머지 버그는 컴퓨터와 에디터 껐다켭시다
-
글쓴이글
5 글 보임 - 1 에서 5 까지 (총 5 중에서)
- 답변은 로그인 후 가능합니다.
