Javascript HTML表childs筛选器

Javascript HTML表childs筛选器,javascript,html,Javascript,Html,我正在创建一个有3列的表,第一列是customer name,然后是一个按钮,该按钮在第三列中触发表的可见性,第三列包含一个包含用户电话历史记录的表 我已经成功地为第一列创建了一个过滤器,并切换了第二个表的可见性。但是当同时过滤和切换时,第二个表的行不会显示 您可以看到我的代码示例 HTML基本代码: <table id='table1'> <tr> <th>titulo1</th> <th>titulo2</

我正在创建一个有3列的表,第一列是customer name,然后是一个按钮,该按钮在第三列中触发表的可见性,第三列包含一个包含用户电话历史记录的表

我已经成功地为第一列创建了一个过滤器,并切换了第二个表的可见性。但是当同时过滤和切换时,第二个表的行不会显示

您可以看到我的代码示例

HTML基本代码:

<table id='table1'>
  <tr>
    <th>titulo1</th>
    <th>titulo2</th>
  </tr>
  <tr>
    <td>texto1</td>
    <td>
      <table id='table2'>
        <tr>
          <th>titulo1</th>
          <th>titulo2</th>
        </tr>
        <tr>
          <th>data1</th>
          <th>data2</th>
        </tr>
      </table>
    </td>
  </tr>
</table>

提托洛1
提图洛2
texto1
提托洛1
提图洛2
数据1
数据2
JS代码:

function filtrar() {
      var input, filter, table, tr, td, i;
      input = document.getElementById("myFIlterInput");
      filter = input.value.toUpperCase();
      table = document.getElementById("table1");
      tr = table.getElementsByTagName("tr");
      for (i = 0; i < tr.length; i++) {
        td = tr[i].getElementsByTagName("td")[0];
        if (td) {
          if (td.innerHTML.toUpperCase().indexOf(filter) > -1) {
            tr[i].style.display = "";
          } else {
            tr[i].style.display = "none";
          }
        } 
      }
    }
函数过滤器(){
var输入、过滤器、表格、tr、td、i;
输入=document.getElementById(“myFIlterInput”);
filter=input.value.toUpperCase();
table=document.getElementById(“表1”);
tr=table.getElementsByTagName(“tr”);
对于(i=0;i-1){
tr[i].style.display=“”;
}否则{
tr[i].style.display=“无”;
}
} 
}
}

事实证明,在过滤功能中,隐藏td的循环不仅影响同级的人,而且影响所有低于父亲的人

我添加了第二行

td = tr[i].getElementsByTagName("td")[0];
if(td.parentElement.parentElement.parentElement.id != 'table1'){continue;}

让元素检查其父元素后,如果不是我要查找的元素,请跳过它。

HTML中没有
#myFIlterInput
。此外,没有任何事件,切换操作至少涉及一个“单击”事件。对不起,您可以将筛选器替换为
filter='texto1'有按钮吗?您提到应该在第一列中的按钮?也许你应该:1。陈述你的期望。2.说明您实际得到的结果。实际上不是一个按钮,而是
中的一个文本,它会触发一个
点击
事件。如果它只是
的文本,那么请参考
并使用
.textContent
属性。
onclick
实际上是一个神奇地出现在
中的文本?
更容易处理。