如何使用JavaScript搜索HTML表格中的单元格?

时间:2017-07-14 18:30:08

标签: javascript html

我在此Fiddle中有以下表格。

正如您所看到的,表格每行有两列,此表将在未来更新两行列。

我的目标是使用搜索过滤器在表格顶部显示行。您可以在小提琴中看到此功能。如果键入:“每周”,则会显示“每日”和“每周”行。但是每日首先,而不是每周。

但我想要的是每当我找到一个带有某个单词的单元格时,我希望它出现在表格的第一个单元格中。在这种情况下,如果我搜索“每周”,我希望在第一行的第一个单元格中。

如何使用JavaScript执行此操作?在这里,我将让我的Javascript代码(在小提琴中):

function search() {
  var input, checkfilter, filter, table, tr, td, i;
  input = document.getElementById("myInput");

  filter = input.value.toUpperCase();
  table = document.getElementById("myTable");
  tr = table.getElementsByTagName("tr");

  for (i = 0; i < tr.length; i++) {
    td = tr[i].getElementsByTagName("td")[0];
        td1 = tr[i].getElementsByTagName("td")[1];
    if (td || td1) {
      if (td.innerHTML.toUpperCase().indexOf(filter) > -1 
          || td1.innerHTML.toUpperCase().indexOf(filter) > -1){
        tr[i].style.display = "";
      } else {
        tr[i].style.display = "none";
      }
    }
  }
}

非常感谢你的帮助。我非常感谢Stackoverflow中的工作。

1 个答案:

答案 0 :(得分:1)

我不明白你是在提问还是提出解决方案?

getElementById('foobar')是一种操纵DOM中对象的方法。例如,我可以使用这些来快速设置PR模板:

function () {
    var e = document.getElementById('pull_request_body');
    if (e) {
        e.value += 'Insert pull request template here';
    }
};