제이쿼리로 remove(), empty() 메소드 구현하면 차이가 있다.
$(dom).remove()
dom 과 하위 요소를 전부 제거한다.
제거된 요소는 JQuery 데이터 형태로 유지되지만, 제거된 요소와 하위 요소들의 데이터, 이벤트는 전부 제거된다.
$(dom).empty()
dom의 하위요소(텍스트 포함)들을 제거한다.
자식 요소들의 데이터, 이벤트도 함께 제거된다.
제거된 요소가 데이터로 유지되지 않는다.
프로젝트를 하면서 remove() 를 사용하니 <li> 태그가 완전히 없어지지 않았다. 예를 들어 <li>를 3개 생성했다가 remove()로 제거하니 이전에 지웠던 <li> 3개가 텍스트 같은 것들은 없어졌지만 (공백)공간이 어느정도 남아있는 것처럼 보였다. 그 상태로 append()로 <li>태그를 추가하니까 앞에서 말한 공간 밑에 li 내용들이 추가되었다. 그래서 이런 문제를 해결하려면 remove 대신 empty를 사용하면 된다.
'개발 공부 > 자바스크립트(JavaScript)' 카테고리의 다른 글
[js] sort 함수로 배열 정렬하기 (0) | 2022.06.20 |
---|---|
[js] 현재 날짜(이후)에서 가장 가까운 특정 요일의 날짜 구하기 (0) | 2022.06.20 |
[js] slice(), charAt() 사용해서 Date()로 원하는 날짜 형식으로 출력하기 (0) | 2022.06.20 |
[js] focus(), change() 로 dropdown 메뉴 변경 전 값 얻기 (0) | 2022.06.20 |
[js] 드롭다운(dropdown)에서 선택된 값 얻기 (0) | 2022.06.16 |
[js] append()로 특정 id값을 가진 부모의 자식 태그 만들기 (0) | 2022.06.16 |