2011-04-18 8 views
0

나는 다음 HTML이 :jQuery를 검색 다차원 UL 목록

<input type="text" id="search" name="searchword" value="" /> 
<ul id="search_list"> 
    <li>first</li> 
    <li>second</li> 
    <li>third 
     <ul> 
      <li>aaa</li> 
      <li>bbbb 
       <ul> 
        <li>111111</li> 
        <li>22222</li> 
        <li>3333</li> 
       </ul> 
      </li> 
      <li>cccc</li> 
     </ul> 
    </li> 
</ul> 

을 그리고 입력을 통해이 목록을 검색 할 수 있습니다. 입력에 텍스트를 입력하고 검색 결과가 아닌 <li><ul>을 숨기려면 입력해야합니다.

은 흐리게하거나 검색 및 필터가 수행하고자 할 때 변화가 따라 내 나쁜 영어

+0

코드를 작성하려 했습니까? 검색 입력의 예는 무엇입니까? –

+0

입력 "11"을 입력한다고 가정 해 봅시다. 그 경우

  • 먼저
  • 두 번째
  • 은 검색 결과가 아니기 때문에 숨겨야합니다. – Wizard4U

    답변

    5

    사용의 keyup에 대해 매우 미안 주셔서 감사합니다.

    $('#search').change(function() { 
        var searchTerms = $(this).val(); 
    
        $('li').each(function() { 
         var hasMatch = searchTerms.length == 0 || $(this).is(':contains(' + searchTerms + ')'); 
    
         $(this).toggle(hasMatch); 
        }); 
    }); 
    

    편집 : 솔루션을 약간 더 자세히 표시하여 쉽게 읽을 수 있습니다.

    여기에 fiddle이 있습니다.

    +0

    우수, 그렇게 간단하지 않을 것입니다. 대단히 감사합니다. – Wizard4U

    +2

    +1 : 검색 창에 아무 것도 대체하지 않는 것이 좋습니다. 'if (searchTerms.length == 0) {$ ('li'). show(); 반환; }' –

    +0

    검색 창에 아무 것도 입력하지 않으면 오류가 발생합니다. –

    관련 문제