자바스크립트 토글내부에서 어레이로 조건 맞추기? 라고 해야할까요

자바스크립트 토글내부에서 어레이로 조건 맞추기? 라고 해야할까요

QA

자바스크립트 토글내부에서 어레이로 조건 맞추기? 라고 해야할까요

본문


 
    $(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); 
        });

  });
});

답변을 작성하시기 전에 로그인 해주세요.
전체 253
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT