html 요소 중 일부 클래스를 불러와, 그 내부에 있는 text가 input값과 동일할 경우 해당 리스트를 보여줘야 하는 상황이었는데, 계속하여 type에러가 발생하는 상황이었다.
문제는 선택자의 속성과 메소드의 속성이 맞지 않는 것이 원인이었다!
1. 선택자와 prototype
document.getElementsByClassName() = prototype이 htmlCollector로 설정되어 나옴
document.querySelectorAll() = prototype이 nodelist로 설정되어 나옴
For each, filter, map 등의 배열메소드는 말 그대로 '배열'에 사용 가능함.
따라서 위 선택자들로 요소를 선택하고, 위의 메소드를 사용하려고 하는 경우에는 타입에러가 발생하게 됨.
해결법은?!
1. 배열로 만든다
2. 배열 전개방식으로 펼친 뒤 사용한다
ex) [...선택된요소].filter()
참고로 2를 사용하여 빠르게 해결하였다!
오늘도 잘 해냈다!
'TIL' 카테고리의 다른 글
230605) input 요소 사용시 1줄만 입력이 가능한 현상 (0) | 2023.06.05 |
---|---|
230602) 시맨틱 요소와 form 요소, 검색 기능 (0) | 2023.06.02 |
230531) 영화 평가 리스트 사이트 구현 (0) | 2023.05.31 |
230530) This, JS 셀렉터 (0) | 2023.05.30 |
230526) JS 기초 복습 및 실행 컨텍스트 (0) | 2023.05.27 |