jquery – 在html表中搜索

前端之家收集整理的这篇文章主要介绍了jquery – 在html表中搜索前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个大约5000行的大表.
我使用以下 jquery片段在此表中搜索特定文本.
function searchTable(inputVal) {

    var table = $('.table');

    table.find('tr').each(function(index,row) {
        var allCells = $(row).find('td');

        if(allCells.length > 0) {
            var found = false;
            allCells.each(function(index,td) {
                var regExp = new RegExp(inputVal,'i');
                if(regExp.test($(td).text())) {
                    found = true;
                    return false;
                }
            });

            if(found == true) {
                $(row).show();
            } else {
                $(row).hide();
            }
        }   
    });
}

现在这个脚本需要一些时间来执行,因为它遍历每行的每个单元格.考虑到该表连续有6个单元格,迭代总数几乎是6 * 5000 = 30000!
是否有任何建议来优化此代码段?

解决方法

您还可以创建自定义扩展程序,如:
// jQuery expression for case-insensitive filter
$.extend($.expr[":"],{
    "contains-ci": function(elem,i,match,array) 
    {
        return (elem.textContent || elem.innerText || $(elem).text() || "").toLowerCase().indexOf((match[3] || "").toLowerCase()) >= 0;
    }
});

并像这样使用它:

$("#table tbody>tr").hide(); // hides all tr
$("#table td:contains-ci('" + value + "')").parent("tr").show(); // show tr that containt value

这是一个运行的例子:http://jsfiddle.net/QvU67/

猜你在找的jQuery相关文章