[JS][ํ”„๋กœ์ ํŠธ] ๐ŸŽฌ์˜ํ™” ๊ฒ€์ƒ‰ UI(2) - ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•˜๊ธฐ

์šฐ์—ฅยท2024๋…„ 4์›” 26์ผ

๐Ÿ”— ๊ตฌํ˜„ ํŽ˜์ด์ง€ ๋งํฌ

https://park-yuyeong.github.io/movie_search_site/main.html

ย 

๐Ÿ’ซ ์นด๋“œ ๋ฆฌ์ŠคํŠธ์—… ์ฝ”๋“œ ์ˆ˜์ •

let temp_html = `
<div class="card"token interpolation">${element['id']}')">
	<img src="https://image.tmdb.org/t/p/w500${element['poster_path']}" alt="์ด๋ฏธ์ง€ ์˜ค๋ฅ˜">
    <h3>${element['title']}</h3>
    <p>${element['overview']}</p>
    <p>Rating: ${element['vote_average']}</p>
</div>`;

card_section.innerHTML += temp_html;

ย  ์–ด์ œ๋Š” appendChild()ํ†ตํ•ด card_section์— ์นด๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ด์„œ ์ถ”๊ฐ€๋ฅผ ์œ„ํ•œ ์ฝ”๋“œ๊ฐ€ ์ข€ ์กฐ์žกํ•œ ๋А๋‚Œ์œผ๋กœ ์งœ์˜€์—ˆ๋Š”๋ฐ, ๋ฌธ์ž์—ด ๋ง์…ˆ์„ ํ†ตํ•ด ์นด๋“œ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋„๋ก ์ฝ”๋“œ๋ฅผ ๋ฐ”๊พธ๋‹ˆ ๋ผ์ธ๋„ ๋งŽ์ด ์ค„๊ณ  ์ฝ”๋“œ๋ฅผ ํŒŒ์•…ํ•˜๊ธฐ์—๋„ ์ข‹์•„์กŒ๋‹ค.๐Ÿ‘

ย 

๐Ÿ’ซ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ ๊ตฌํ˜„

const find_movie = () => {
  const search_input = document.getElementById('search_input').value.toLowerCase();

  Array.from(card).forEach(item => { // ์นด๋“œ๋Š” ์œ ์‚ฌ๋ฐฐ์—ด๊ฐ์ฒด
    let find_title = item.getElementsByTagName('h3')[0].innerText.toLowerCase();
    if (find_title.indexOf(search_input) === -1) item.style = 'display: none';
    else item.style = 'display: inline';
  });
};

ย  ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ ๊ตฌํ˜„์„ ์œ„ํ•ด find_movie()๋ผ๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ์ฃผ์—ˆ๋‹ค.
ย  string.indexOf()๋ฅผ ๋ฌธ์ž์—ด์—์„œ ํŠน์ • ๋ฌธ์ž์—ด์„ ์ฐพ๋Š” ํ•จ์ˆ˜์ด๋‹ค. ๊ฒ€์ƒ‰ํ•œ ๋ฌธ์ž์—ด์ด ๋‚˜ํƒ€๋‚˜๋Š” ์ฒซ๋ฒˆ์งธ ์œ„์น˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์ฐพ๋Š” ๋ฌธ์ž์—ด์ด ์—†๋Š” ๊ฒฝ์šฐ -1์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

ย 

๐Ÿ’ซ ๊ทธ ์™ธ ๊ตฌํ˜„ํ•œ ๊ธฐ๋Šฅ

  • ์†Œ๋ฌธ์ž, ๋Œ€๋ฌธ์ž ๊ตฌ๋ถ„ ์—†์ด ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅ
  • ๊ฒ€์ƒ‰ ๋ฒ„ํŠผ ๋ˆ„๋ฅผ ๋•Œ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ์—”ํ„ฐ ํ‚ค๋ฅผ ์ž…๋ ฅํ–ˆ์„ ๋•Œ๋„ find_movie() ์‹คํ–‰
  • ์›น์‚ฌ์ดํŠธ ๋žœ๋”ฉ ๋˜๋Š” ์ƒˆ๋กœ๊ณ ์นจ ํ›„ ๊ฒ€์ƒ‰ ์ž…๋ ฅ๋ž€์— ์ปค์„œ ์ž๋™ ์œ„์น˜
profile
๐ŸŒธ๐Ÿ˜Š๐ŸŒธ

0๊ฐœ์˜ ๋Œ“๊ธ€