2011-10-31 5 views
10

열 값을 기준으로 테이블 행을 필터링하는 방법을 알고 싶습니다. 플러그인을 제외하고,이 방법을 작동시키는 방법을 알아 내고 싶습니다.jquery가있는 테이블 행 필터링

답변

11

귀하의 질문은 매우 모호하지만, 일반적인 생각은 다음과 같이 될 것이다 : 여기

$("td").filter(function() { 
    return $(this).text().indexOf("whatever") !== -1; 
}).parent().remove(); 

working example입니다. 먼저 모든 표 셀을 선택하고 일부 텍스트를 기준으로 필터를 적용한 다음 남아있는 행의 상위 항목 (tr이어야 함)을 제거합니다.

개별 열에 신경 쓰지 않는다면 tr 요소를 선택하고 parent에 대한 호출을 제거 할 수 있습니다. text이 선택한 tr의 모든 하위 텍스트를 반환하기 때문에 여전히 작동합니다. 의견

에 따라

업데이트 위 완전히 DOM에서 일치하는 테이블 행을 제거합니다. 그냥 숨기려면 removehide으로 바꿀 수 있습니다. 그래서 그냥 사람이 이전에 숨겨진 모든 tr 요소를 선택하고 (이미 영향을받지 않습니다 볼 수 있습니다 사람들을 보여줍니다

$("tr").show(); 

: 당신은 당신이 단순히 뭔가를 할 수있는 다시 행을 볼 수 있도록하고 싶었다면 다시 볼 수있게됩니다).

+0

이 작업은 .hide()에서도 가능합니까? 가능한 경우 필터를 재설정하려는 경우에 대비하여 모든 테이블 행을 표시/숨기기 해제하는 좋은 방법은 무엇입니까? – mko

+1

@ 존 - 예,'hide'를 사용하면 잘 작동합니다. 내 편집을 참조하십시오. –

0

모든 표 필터링의 기본 개념은 모든 행을 숨긴 다음 <td>의 콘텐츠에 검색 문자열이 포함 된 위치를 표시하는 것입니다.

$('tr').filter(":contains('" + searchstring + "')").show(); 

을하지만 이것에 대한 jQuery를 사용할 필요가 없습니다 - 나는 그것을 위해 일반 JS-솔루션을 코딩했습니다

는 jQuery를 함께 마법은 다음과 같이 이루어집니다. 당신은 그것을 here 찾을 수 있습니다.