18910140161

JavaScript-使用下拉选择堆栈溢出过滤html表

顺晟科技

2022-10-19 13:35:46

74

说明

我一直在使用索引值为1的选择标记筛选HTML表,这是第二列

问题

如果选择fish_1,它还显示fish_1、fish_12、fish_123

示例

值为chicken_1的筛选 结果:

<头>
标头 另一个标题
岛屿贸易 chicken_1
Koniglich Essen chicken_12
岛屿贸易 chicken_1
Magazzini Alimentari riuniti chicken_123
巴黎特种部队

我需要的东西

  1. 如果选择,则只需筛选
  2. 如果选择,我只需要显示,而不需要

顺晟科技:

为筛选项定义regexp并检查是否完全匹配。

function myFunction() {
  var input, filter, table, tr, td, i;
  input = document.getElementById("mylist");
  filter = input.value.toUpperCase();
  table = document.getElementById("myTable");
  tr = table.getElementsByTagName("tr");
  for (i = 0; i < tr.length; i++) {
    td = tr[i].getElementsByTagName("td")[1];
    if (td) {
      if (td.innerHTML.toUpperCase().indexOf(filter) > -1) {
        tr[i].style.display = "";
      } else {
        tr[i].style.display = "none";
      }
    }
  }
}

只需将indexOf更改为===

function myFunction() {
  var input, filter, table, tr, td, i;
  input = document.getElementById("mylist");
  filter = input.value.toUpperCase();
  table = document.getElementById("myTable");
  tr = table.getElementsByTagName("tr");
  for (i = 0; i < tr.length; i++) {
    td = tr[i].getElementsByTagName("td")[1];
    if (td) {
      if (td.innerHTML.toUpperCase().indexOf(filter) > -1) {
        tr[i].style.display = "";
      } else {
        tr[i].style.display = "none";
      }
    }
  }
}

我将切换隐藏类

function myFunction() {
  var input, filter, table, tr, td, i;
  input = document.getElementById("mylist");
  filter = input.value.toUpperCase();
  table = document.getElementById("myTable");
  tr = table.getElementsByTagName("tr");
  for (i = 0; i < tr.length; i++) {
    td = tr[i].getElementsByTagName("td")[1];
    if (td) {
      if (td.innerHTML.toUpperCase().indexOf(filter) > -1) {
        tr[i].style.display = "";
      } else {
        tr[i].style.display = "none";
      }
    }
  }
}

将条件更改为仅在完全匹配时显示行。

indexOf()方法返回字符串中指定值的第一个匹配项的位置。如果找不到该值,indexOf()返回-1。 当您使用indexof时,它将在字符串中找到“fish”,并直接返回fish的出现..

尝试检查整个字符串的条件

function myFunction() {
  var input, filter, table, tr, td, i;
  input = document.getElementById("mylist");
  filter = input.value.toUpperCase();
  table = document.getElementById("myTable");
  tr = table.getElementsByTagName("tr");
  for (i = 0; i < tr.length; i++) {
    td = tr[i].getElementsByTagName("td")[1];
    if (td) {
      if (td.innerHTML.toUpperCase().indexOf(filter) > -1) {
        tr[i].style.display = "";
      } else {
        tr[i].style.display = "none";
      }
    }
  }
}
  • TAG:
相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航