javascript - 获取输入元素的 keyup 上未定义的函数

标签 javascript

鉴于下表(在 w3schools 处对此表进行了稍微修改的版本),但搜索所有列,当输入文本框中的值。另外,如何在搜索表格时防止表格标题消失?

HTML

<input type="text" id="search-attorneys" onkeyup="searchAttorneys()" placeholder="Search for names.." title="Type in a name">

JS

function searchAttorneys() {
  var input, filter, table, tr, td, i;
  input = document.getElementById("search-attorneys");
  filter = input.value.toUpperCase();
  table = document.getElementById("attorneys");
  tr = table.getElementsByTagName("tr");
  for (i = 0; i < tr.length; i++) {
    tds = tr[i].getElementsByTagName("td");
    var found = false;
    for (j = 0; j < tds.length; j++) {
      td = tds[j];
      if (td) {
        if (td.innerHTML.toUpperCase().indexOf(filter) > -1) {
          found = true;
          break;
        }
      }
    }
    if (found) {
      tr[i].style.display = "";
    } else {
      tr[i].style.display = "none";
    }
  }
}

JSFIDDLE:LINK

最佳答案

HTML

<input type="text" id="search-attorneys" placeholder="Search for names.." title="Type in a name">

Javascript

$(document).ready(function(){
  $('search-atorneys').on('keyup', function(){
    var input, filter, table, tr, td, i;
    input = document.getElementById("search-attorneys");
    filter = input.value.toUpperCase();
    table = document.getElementById("attorneys");
    tr = table.getElementsByTagName("tr");
    for (i = 0; i < tr.length; i++) {
      tds = tr[i].getElementsByTagName("td");
      var found = false;
      for (j = 0; j < tds.length; j++) {
        td = tds[j];
        if (td) {
          if (td.innerHTML.toUpperCase().indexOf(filter) > -1) {
            found = true;
            break;
          }
        }
      }
      if (found) {
        tr[i].style.display = "";
      } else {
        tr[i].style.display = "none";
      }
    }
  });
});

从 js 内部执行而不是从 html 内部执行通常是更好的方法。

关于javascript - 获取输入元素的 keyup 上未定义的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43440259/

相关文章:

javascript - 如何使用 Javascript 打印带有图像的 Html 页面

javascript - 无法使用jquery获取xml属性的值

javascript - jquery 添加/删除父 div 之外的多个元素的类

javascript - JavaScript 对象中的线性搜索

javascript - eslint 中的 plugins 和 extends 有什么区别?

javascript - 单击按钮刷新图表

javascript - express 返回帖子信息由另一个功能处理

Javascript - 运行时优先级和队列

javascript - HTML - 我可以在父级 <div> 中包装一系列 <div> 标签吗?

javascript - vue-i18n 如何缩写货币显示?