用js搜索表

时间:2014-07-23 07:59:16

标签: javascript html search

我想在我的html中搜索一个表格。我有这方面的代码,但它没有采取替代方式,例如当我输入“它是什么”时,它搜索“那是什么”而不是例如“那是什么”。

此外,我想在最后添加一个空格时,脚本会忽略它并且仅用于文本字符  这是小提琴:jsfiddle.net/x7aUy/4
 这是代码:

function doSearch() 
{
    var searchText = document.getElementById('searchTerm').value;
    var targetTable = document.getElementById('dataTable');
    var targetTableColCount;

    //Loop through table rows
    for (var rowIndex = 0; rowIndex < targetTable.rows.length; rowIndex++) {
        var rowData = '';

        //Get column count from header row
        if (rowIndex == 0) {
        targetTableColCount = targetTable.rows.item(rowIndex).cells.length;
        continue; //do not execute further code for header row.
        }

        //Process data rows. (rowIndex >= 1)
        for (var colIndex = 0; colIndex < targetTableColCount; colIndex++) {
            rowData += targetTable.rows.item(rowIndex).cells.item(colIndex).textContent;
            //if table rows = 0 then show no results text

            if (rowIndex <= 1)
            {
                document.getElementById('noresults').style.display = "block";
            }

        }

        //If search term is not found in row data
        //then hide the row, else show and hide no results text
        if (rowData.indexOf(searchText) == -1){
            targetTable.rows.item(rowIndex).style.display = 'none';

        }           
        else {
            targetTable.rows.item(rowIndex).style.display = 'table-row';
            document.getElementById('noresults').style.display = "none";
            }
    }
}

1 个答案:

答案 0 :(得分:0)

如果我理解,你想要的是一个不区分大小写的搜索?

如果是,那么就在你的两个数据上做一个toLowerCase()。

在这一行:

if (rowData.indexOf(searchText) == -1){}

只做

if (rowData.toLowerCase().indexOf(searchText.toLowerCase()) == -1){}

然后,'searchString'将匹配'searchstring'或'SeaRCHsTRINg'

如果你想删除空格,juste在输入上添加一个正则表达式过滤器:

searchText = searchText.replace(/^\s+|\s+$|\s+(?=\s)/g, "");

(此致Regular expression for removing whitespaces的积分)