개인과제(영화사이트 바닐라스크립트)
[내일배움캠프] 개인 과제 영화 사이트 -바닐라스크립트로 제작-2
김민커
2023. 6. 11. 21:42
영화카드를 선택하면 영화의 id를 alert하는 기능을 구현해야한다.
function select(id) {
alert(`영화 id: ${id}`);
}
id값을 매게변수로 alert하는 함수를 만든다.
let temp_html = `<div class="flip-box" onclick="select(${id})">
카드의 요소를 전부 담고 있는 div에 onclick으로 함수를 실행하도록 설정한다.
결과물
영화를 검색기능 구현하기
<div class="search">
<label>Search : </label>
<input type="text" id="search-input" placeholder="Input The movie" />
<input type="button" class="img-button" id="search-btn" onclick="search()"></button>
</div>
영화를 검색할 수 있도록 input칸과 버튼을 만든다. 버튼을 클릭하면 검색한 영화를 불러오는 search()함수를 실행한다.
function search() {
const search_Input = document.querySelector('#search-input');//검색 값을 가져온다.//
const search_word = search_Input.value.toLowerCase();//검색 값을 소문자화 시킨다.//
const movie_list = document.querySelectorAll('.movie_title');//영화 카드를 깡그리 가져온다.//
movie_list.forEach((a) => {
const movie_title = a.querySelector("#movie_title").textContent.toLowerCase();//가져온 영화제목을 전부 소문자화 한다.
if (movie_title.indexOf(search_word) !== -1) {//검색값과 영화의 제목이 일치하는게 있다면 스타일 display css를 block으로 전환//
a.style.display = 'block'
}
else {
a.style.display = 'none'//검색값과 같은게 없다면 스타일 display css를 none으로 전환//
}
})
}
document.querySelector로 검색값을 가져온다.
search_Input.value.toLowerCase()로 검색한 값을 전부 소문자화 한다.
document.querySelectorAll로 필터를 적용할 영화 데이터를 가져온다.
querySelectorAll로 가져온 영화의 데이터를 forEach()로 제목을 소문자화 한다.
indexOf로 검색한 제목이 있다면 !==-1의 조건을 통해서 display 속성 'block'을 부여한다. 아니라면 'none'을 부여한다.