๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Javascript/Effect

search Effect (3)

by oranssy 2022. 8. 23.
728x90
๋ฐ˜์‘ํ˜•

โญ๏ธ ํ‚ค์›Œ๋“œ ๋งŒ๋“ค๊ธฐ โญ๏ธ


01. < script > ์— ์ž‘์„ฑํ•˜๊ธฐ

        // ์„ ํƒ์ž
    const searchKeyword = document.querySelectorAll(".search__info .keyword span");   // ์•ŒํŒŒ๋ฒณ ํ‚ค์›Œ๋“œ
    const searchList = document.querySelectorAll(".search__list ul li")  // ๋ชฉ๋ก ๋ฆฌ์ŠคํŠธ
    const searchInfo = document.querySelector(".search__info .num")   // ์ „์ฒด ๊ฐฏ์ˆ˜
    const searchInfo2 = document.querySelector(".search__info .num2"); // ์ฐพ์€ ๊ฐฏ์ˆ˜


    // ์ฐพ์€ ๊ฐฏ์ˆ˜ ์„ค์ •ํ•˜๊ธฐ

    searchInfo.textContent = searchList.length;
    searchKeyword.forEach((el)=>{
    
        el.addEventListener("click", () => {
        
            const searchWord = el.innerText;           //์‚ฌ์šฉ์ž๊ฐ€ ํด๋ฆญํ•œ ์•ŒํŒŒ๋ฒณ
            // console.log(searchWord);
        
            searchList.forEach(el => {
                const cssName = el.querySelector("strong").innerText;       //CSS์†์„ฑ ํ…์ŠคํŠธ
                // console.log(cssName);
            
                //์•ŒํŒŒ๋ฒณ ์ฒซ ๊ธ€์ž == css ์†์„ฑ์˜ ์ฒซ ๊ธ€์ž
                if(searchWord.charAt(0) === cssName.charAt(0)){
                    el.classList.remove("hide"); // ์ผ์น˜ํ•˜๋ฉด ์ˆจ๊น€ ์—†์• ๊ณ 
                } else {
                    el.classList.add("hide"); // ๋ถˆ์ผ์น˜ํ•˜๋ฉด ์ˆจ๊น€
                }
            });
        
            const hidingNum = document.querySelectorAll(".search__list ul li.hide");
            searchInfo2.textContent = searchList.length - hidingNum.length;
        });
    });

03. ๊ฒฐ๊ณผ๋ณด๊ธฐ

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€