2011-12-13 61 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; 
    } 
     } 

    }); 

我知道我可以使用JavaScript中循環中的每一行閱讀和檢查每個人,但如果textarea的包含4000+線,這可能是昂貴的。

有沒有一種方法可以使用JQuery來簡化這個或不同的方式,我應該考慮這個問題?任何幫助表示讚賞。

謝謝。

+0

不管語法看起來像什麼,如果被直接應用到textarea中的過濾器(而不是修改如何在客戶端 - 服務器交互作品)基礎過程將是每行需要檢查的價值。 `for`循環至少比`.each()`迭代器便宜。問題:一旦字符串已經發送到DOM,你可以在`'/ n'`分割嗎?我知道你可以在一個數據集上,但我不知道該角色是否在一個節點內持續存在。 – 2011-12-13 18:28:01

回答

0

你有沒有考慮過使用textarea的scrollTop屬性來限制你迭代一個十字的行?

這至少可以讓你綁定的搜索運算爲代價

相關問題