Javascript 如何使表的筛选函数不区分大小写?
我的表上有一个搜索功能,它只搜索确切的关键字。它不会显示未正确大写的数据。如何使其不区分大小写,以便即使键入所有小写单词也可以显示这些数据?顺便说一句,我用的是ESLINT规则。以下是我的javascript代码:Javascript 如何使表的筛选函数不区分大小写?,javascript,vue.js,eslint,Javascript,Vue.js,Eslint,我的表上有一个搜索功能,它只搜索确切的关键字。它不会显示未正确大写的数据。如何使其不区分大小写,以便即使键入所有小写单词也可以显示这些数据?顺便说一句,我用的是ESLINT规则。以下是我的javascript代码: myFunction () { var searchText = document.getElementById('searchTerm').value var targetTable = document.getElementById('myTable') var ta
myFunction () {
var searchText = document.getElementById('searchTerm').value
var targetTable = document.getElementById('myTable')
var targetTableColCount
for (var rowIndex = 0; rowIndex < targetTable.rows.length; rowIndex++) {
var rowData = ''
if (rowIndex === 0) {
targetTableColCount = targetTable.rows.item(rowIndex).cells.length
continue // do not execute further code for header row.
}
for (var colIndex = 0; colIndex < targetTableColCount; colIndex++) {
rowData += targetTable.rows.item(rowIndex).cells.item(colIndex).textContent
}
if (rowData.indexOf(searchText) === -1) {
targetTable.rows.item(rowIndex).style.display = 'none'
} else {
targetTable.rows.item(rowIndex).style.display = 'table-row'
}
}
}
myFunction(){
var searchText=document.getElementById('searchTerm')。值
var targetTable=document.getElementById('myTable')
var targetTableColCount
对于(var rowIndex=0;rowIndex
在我看来,你做的工作比必要的多。如果目的是显示具有搜索文本的行,则使用该行的textContent,而不是连接所有单元格值,并将显示设置为“无”或“”,以便元素采用其默认显示或继承显示,而无需对其进行编程。例如
函数doSearch(){
var searchText=document.getElementById('i0').value.toLowerCase();
var table=document.getElementById('t0');
变量行,行=table.rows;
//跳过第一行
对于(var i=1,iLen=rows.length;i在我看来,您所做的工作似乎超出了必要的范围。如果目的是显示包含搜索文本的行,则使用该行的文本内容,而不是串联所有单元格值,并将显示设置为“无”或“”,因此元素采用其默认或继承的显示,而无需对其进行编程
函数doSearch(){
var searchText=document.getElementById('i0').value.toLowerCase();
var table=document.getElementById('t0');
变量行,行=table.rows;
//跳过第一行
对于(var i=1,iLen=rows.length;i此部分:
if (rowData.indexOf(searchText) === -1) {
targetTable.rows.item(rowIndex).style.display = 'none'
} else {
targetTable.rows.item(rowIndex).style.display = 'table-row'
}
让我们将其更改为:
if (isInsideInsensitive(rowData,searchText)) {
targetTable.rows.item(rowIndex).style.display = 'none'
} else {
targetTable.rows.item(rowIndex).style.display = 'table-row'
}
附加功能:
function isInsideInsensitive(a, b){
return a.toLowerCase().indexOf(b.toLowerCase()) != -1;
}
请查看IsInsideInsitive功能此部分:
if (rowData.indexOf(searchText) === -1) {
targetTable.rows.item(rowIndex).style.display = 'none'
} else {
targetTable.rows.item(rowIndex).style.display = 'table-row'
}
让我们将其更改为:
if (isInsideInsensitive(rowData,searchText)) {
targetTable.rows.item(rowIndex).style.display = 'none'
} else {
targetTable.rows.item(rowIndex).style.display = 'table-row'
}
附加功能:
function isInsideInsensitive(a, b){
return a.toLowerCase().indexOf(b.toLowerCase()) != -1;
}
查看isinsideinsitive函数您可以使用string方法
if (rowData.toLowerCase().indexOf(searchText.toLowerCase()) === -1) {
targetTable.rows.item(rowIndex).style.display = 'none'
} else {
targetTable.rows.item(rowIndex).style.display = 'table-row'
}
您可以使用string方法
if (rowData.toLowerCase().indexOf(searchText.toLowerCase()) === -1) {
targetTable.rows.item(rowIndex).style.display = 'none'
} else {
targetTable.rows.item(rowIndex).style.display = 'table-row'
}
使用所有小写(或所有大写)进行比较。确实应该使用分号终止语句。使用所有小写(或所有大写)进行比较。确实应该使用分号终止语句。