자바스크립트 토글내부에서 어레이로 조건 맞추기? 라고 해야할까요
본문
$(document).ready(function(){
$("#search").on("keyup", function() {
var value = $(this).val().toLowerCase();
$(".model").filter(function() {
$(this).toggle(
$(this).text().toLowerCase().indexOf(value) > -1
||
$(this).text().toLowerCase().indexOf('모델명1') > -1
);
});
});
});
안녕하세요 구글링도 해보고 알고 있는 것만으로는 도저히 찾아낼수가 없어서 글을 올립니다.
위 스크립트는 w3schools 에 있던건 약간 변형한건데요
원래는 인풋 박스에 검색하여서 하는 것인데요
https://www.w3schools.com/bootstrap/tryit.asp?filename=trybs_filters_list&stacked=h
저는 저것을 이용하여 필터링 같은걸 만들어 보고자 하는데
예를 들면 나이로 검색시 1940,1941,1942 를 동시에 검색하려는데 그게 잘 안되더군요
그래서
$(this).text().toLowerCase().indexOf(value) > -1
||
$(this).text().toLowerCase().indexOf('모델명1') > -1
이런식으로 || 을 사용하여 테스트를 해보니 두가지 조건으로 동시에 가능하더라고요
그런데
꼭 || 이렇게 해야하는지
좀 더 많이 알고 계신 분들은 배열을 이용하실것 같은데
저는 배열을 이용하게되더라고 위에 저 부분을 어찌 수정해야할지 답이 안나오네요
!-->
답변 1
아래처럼 한번 해보세요
$(document).ready(function(){
$("#myInput").on("keyup", function() {
var value = $(this).val().toLowerCase();
var age_array= value.split(",");//구분자,
/*
$("#myList li").filter(function() {
$(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)
});
*/
$("#myList li").filter(function() {
var test_value=$(this).text().toLowerCase();
var toggle_index=false;
for(var i=0;i<age_array.length;i++)
{
if(age_array[i]!=""){
if(test_value.indexOf(age_array[i]) > -1){
toggle_index=true;
break;
}
}
}
$(this).toggle(toggle_index);
});
});
});