2011-12-13 27 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属性来限制你迭代一个十字的行?

这至少可以让你绑定的搜索运算为代价

相关问题