我想在我的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";
}
}
}
答案 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, "");