2009-10-22 5 views
1

JQuery를 처음 사용했지만 분명하지는 않으나 포함 선택기를 사용하여 테이블을 필터링 할 수 있지만 OR 연산자를 사용하여 여러 문자열을 찾는 방법은 무엇입니까? 즉, "빨간색"또는 "노란색"이 포함 된 행을 숨기고 싶습니다.JQuery에 선택기 - 여러 텍스트 항목이 포함됨

가 지금까지 지정된 날짜를 제외한 모든 행을 숨겨 어떤 작품이 있습니다 추가 도전으로

$(function() 
{ 
    $('div#WebPartWPQ5 table.ms-summarycustombody tr:not(:contains("10/27/2009"))') 
     .hide(); 
}); 

, 내가 정말하고 시도하고 다음 날짜 범위를 calulates 숨겨진 스크립트를 작성하다 해당 범위에 속하지 않는 날짜가 포함 된 테이블 행을 제거합니다.

미리 감사드립니다.

John

답변

1

다른 선택기 문자열을 쉼표로 구분하십시오.

$('table tr.red, table tr.yellow').hide() 
+0

문자열을 찾기 위해 contains 선택기를 사용하지 않으므로 작동하지 않는 것 같습니다. 위에서 작성한 코드를 어떻게 다시 작성 하시겠습니까? 색상이 대신 예제의 특성이되지 않습니까? – John

+0

두 개의 다른 "contains"절을 쉼표로 구분하여 동일하게 작동해야합니다. – GalacticCowboy

0

페이지에서 html을 제어 할 수 있습니까?

그렇다면 각 행의 적절한 td 요소에 "날짜"(또는 "색상") 클래스를 추가하는 것이 좋습니다. 그런 다음 - contains를 사용하는 대신 - 브라우저 간 호환성 문제로 어려움을 겪을 가능성이 높습니다. $('tr td.date').val()에 액세스하고 필요한 테스트를 수행하면서 테이블 행을 반복합니다.

또한 날짜 처리를 단순화하기 위해 date.js (http://www.datejs.com/)를 사용하는 것이 좋습니다.

var datestart = Date(); 
var dateend = Date(); 

$('div#WebPartWPQ5 table.ms-summarycustombody tr td.date').each(function(){ 
    var date = Date.parse($(this).val()); 
    if (date.between(datestart, dateend === true)) { 
     $(this).parent().hide(); //your logic here 
    } 
}); 

그리고 .filter() 메소드 (http://docs.jquery.com/Traversing/filter#fn 참조)를 사용하는 또 다른 예.

var datestart = Date(); 
var dateend = Date(); 

$('div#WebPartWPQ5 table.ms-summarycustombody tr').filter(function(){ 
    var date = Date.parse($('td.date', this).val()); 
    return date.between(datestart, dateend) === true; 
}).hide(); //your logic here