JAVASCRIPT/자바스크립트
searchEffect04 - find()
(*ᴗ͈ˬᴗ͈)ꕤ*.゚
2022. 2. 8. 14:22
<script>
const cssProperty = [
{name: "all", desc: "all 속성은 CSS 속성을 재설정하는데 사용할 수 있는 약식 속성입니다."},
{name: "animation", desc: "animation 속성은 애니메이션 속성을 설정하기 위한 약식 속성입니다."},
//생략
//배열 안의 객체 값으로 name과 desc을 주었다
];
const searchBox = document.querySelector("#search-box"); //사용자 입력 값
const cssCount = document.querySelector(".count"); //갯수
const cssDesc = document.querySelector(".desc"); //설명 영역
const cssList = document.querySelector(".list"); //속성 list
// css 속성 값 / 전체 갯수 출력하기
cssProperty.map((element, index) => {
cssCount.innerText = "전체 목록 갯수 :" + (index + 1) + "개"; //index가 문자열로 변환되어 괄호안에서 더해줘야해
cssList.innerHTML += "<span>" + element.name + "</span>"; // '='이라고 하면 변경만 되고 추가하려면 '+=' 해야 함
})
searchBox.addEventListener("keyup", () => { //사용자가 입력하면
const searchWord = searchBox.value; //searchWord에 입력됨
findProp(searchWord) // 그 값을 가지고 함수 실행하자
})
document.querySelectorAll(".list span").forEach(span => { //span 각각을 선택
span.addEventListener("click", () => {
//클릭한 데이터 값을 가져오기
const listProp = span.innerText;
findProp(listProp);
})
})
function findProp(searchProp){ //findProp 함수란?
const targetData = cssProperty.find((data) => data.name === searchProp)
//data.name과 searchProp이 같은지 비교
//찾는 데이터가 없을 때
if(targetData == null){
cssDesc.textContent = "해당 속성은 존재하지 않습니다. 다시 검색해 주세요!";
return;
}
cssDesc.innerHTML = targetData.desc;
}
</script>
참고.
find()란, 배열의 특정 값을 찾는 것입니다.
링크 https://sungilryuu.github.io/webs_class/javascript/effect/searchEffect04.html