728x90
반응형
search03
CSS 의 속성들이 있는 구조이다. 이번에는 검색창을 없애고 [a-z] 클릭?창을 만들었다. 클릭하면 설명창과 갯수가 나오는 구조이다.
HTML
<div class="ketword">
<div class="search__info">
<div class="ketword">
<span>a</span>
<span>b</span>
<span>c</span>
<span>d</span>
<span>e</span>
<span>f</span>
<span>g</span>
<span>h</span>
<span>i</span>
<span>j</span>
<span>k</span>
<span>l</span>
<span>m</span>
<span>n</span>
<span>o</span>
<span>p</span>
<span>q</span>
<span>r</span>
<span>s</span>
<span>t</span>
<span>u</span>
<span>v</span>
<span>w</span>
<span>x</span>
<span>y</span>
<span>z</span>
</div>
<div>전체 속성 갯수 : <span class="num"></span></div>
</div>
</div>
// 선택자
const searchKeyword = document.querySelectorAll(".search__info .ketword span"); //검색 박스
const searchList = document.querySelectorAll(".search__list ul li"); //목록 리스트
const searchInfo = document.querySelector(".num") //전체 갯수
// 전체 갯수 구하기
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");
}
});
});
});
CSS
* 추가함
.search__info .ketword {
text-align: center;
margin-bottom: 10px;
}
.search__info .ketword span{
border: 2px solid var(--htmlColor);
border-radius: 50px;
padding: 10px;
display: inline-block;
margin-bottom: 4px;
}
.search__info .ketword span:hover{
background-color: var(--htmlColor);
color: #fff;
728x90
댓글