2013-11-04 4 views
0

Jquery에 약간의 문제가 있습니다. 장바구니의 "항목"을 필터링하고 싶습니다.이 코드는 실제로 필터하지만 "li"만 표시하지만 자식 항목은 표시하지 않습니다. 숨길 것입니다. 다 만 실제 요소Jquery 검색 기능이 모든 요소를 ​​숨 깁니다.

내가 그들의 "아이"요소를 숨기지 않고 필터링 할을 보여줍니다 enter image description here

enter image description here

enter image description here

,726,136,

JQuery와 코드 :

function search_filter() { 
    $('#busqueda').click(function() { 
     if ($(this).val() == "Buscar...") { 
      $(this).val(""); 
     } 
    }).blur(function() { 
     if ($(this).val() == "") { 
      $(this).val("Buscar..."); 
     } 
    }).on('input', function() { 
     busca = $(this).val(); 

     $("#prod_list li").each(function() { 
      var elem = $(this).children('a'); 
      var reg = new RegExp(busca, "i"); 
      if (reg.test(elem.text())) { 
       if ($(this).is(':hidden')) { 
        $(this).fadeIn('fast').css("display", "block");      
       } 

      } else { 

       $(this).fadeOut('fast'); 
      } 
     }); 
    }); 
} 
+1

HTML에서 부모 요소를 숨기면 모든 자식 요소가 일반적으로 숨겨집니다. 아니면 뭔가 다른 것을 의미합니까? – Orbling

+1

은 상황을 복제하고 다른 사람들이 검사 할 수있는 jsfiddle.net에서 라이브 데모를 만드는 것이 좋습니다 – charlietfl

+0

고맙습니다. PixMach! – Takami

답변

1

그것 때문에 당신이 리튬이 #prod_list 내에서 아마> A> DIV> DIV> UL> 리

그리고 마지막으로 리튬의는

if (reg.test(elem.text())) { 
을 실패

그래서 페이드 아웃을 받고 있습니다. 그냥 수정하여이 문제를 해결할 수 있습니다.

$("#prod_list > ul > li").each(function() { 

대신에이 문제를 해결할 수 있습니다.

+0

대단히 고마워! 이건 내 문제를 해결! : D – Takami

+0

당신을 진심으로 환영합니다! – PixMach

관련 문제