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

我的表上有一个搜索功能,它只搜索确切的关键字。它不会显示未正确大写的数据。如何使其不区分大小写,以便即使键入所有小写单词也可以显示这些数据?顺便说一句,我用的是ESLINT规则。以下是我的javascript代码:

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'
}
使用所有小写(或所有大写)进行比较。确实应该使用分号终止语句。使用所有小写(或所有大写)进行比较。确实应该使用分号终止语句。