2011-12-13 1 views
0

몇 가지 간단한 기준 (문자열의 유무 여부)에 따라 특정 행을 표시하거나 숨길 필요가있는 텍스트 영역이 있습니다. 사용자가이 선을 표시하거나 숨기려면 확인란을 선택하면됩니다.JQuery를 사용하여 특정 텍스트가 포함 된 텍스트 영역의 모든 줄을 전환 (숨기기/표시)하는 방법?

기본적으로 확인란에 클릭 핸들러를 첨부하고 클릭하면 텍스트 영역의 값을 가져온 다음 필터링을 적용해야합니다. 확인란을 선택 취소하면 원래 결과가 다시 표시됩니다.

$('#filter_button').click(function() { 

     var unfilteredArray = $('#unfilteredtextarea').val().trim().split('\n'); 

     for (var i = 0; i < unfilteredArray.length; i++) { 

    if (VALUE IS PRESENT){ 
    HIDE LINE; 
    } else { 
    DISPLAY LINE; 
    } 
     } 

    }); 

는 내가 자바 스크립트에서 루프를 사용하여 각 줄을 읽고 하나 하나를 확인하실 수 있습니다 알고 있지만, 텍스트 영역이 4000 선을 포함하는 경우, 그 비용이 많이들 수 있습니다.

이 문제를 단순화하기 위해 JQuery를 사용할 수 있습니까? 아니면 다른 방식으로 생각해야합니까? 어떤 도움을 주셔서 감사합니다.

감사합니다.

+0

아무리 클라이언트 - 서버 상호 작용 작품을 수정에 반대 필터 (텍스트 영역에 직접 적용되는 경우 구문이 어떻게 생겼는지) 기본 프로세스는 각 라인을 해당 값에 대해 검사해야한다는 것입니다. 'for' 루프는 적어도 .each() 반복자보다 훨씬 저렴합니다. 질문 : 문자열이 이미 DOM에 전송되면''/ n ''에 나눌 수 있습니까? 나는 당신이 데이터 세트에서 할 수 있다는 것을 안다. 그러나 캐릭터가 노드 내부에서 지속되는지 나는 모른다. –

+0

이것은 읽기 전용 텍스트 영역입니까? 그렇지 않은 경우 사용자가 텍스트를 수정하면 어떻게됩니까? – gilly3

답변

0

텍스트 영역의 scrollTop 속성을 사용하여 십자 기호를 반복하는 행을 제한한다고 생각하십니까?

적어도 당신이 검색 연산의 비용을 결합 할 수 있습니다이

관련 문제