html - 隐藏行 <tr> 而不从 DOM 中移除

标签 html css angular dom

我有一张带有搜索功能的表格。搜索函数获取表格元素并遍历所有行以检查 innerText 中是否有匹配的内容(也许整个实现并不理想,请随时发表评论)。

这里的问题是,我想保留 DOM 中的每一行,这样任何新的搜索都会考虑所有行。另一方面,我希望搜索隐藏所有不匹配的行。

我认为在这里很容易找到解决方案,但我没有找到......到目前为止我已经尝试过:

  • display: none - 从 DOM 中移除
  • visiblity:hidden - 保留行的空间
  • height: 0px - 不起作用...我的高度更高,0px 没有任何效果

我试图避免使用 JQuery 并改用 Angular 2 (v4) 工具

编辑:这里是一个plunker我的实现

最佳答案

您可以使用位置:

.hide {
  position: absolute;/* remove from flow*/
  right: 100%;/* send outside screen area */
}
/* is it there ? */
table:hover .hide {
   position:static;
}
<table>
  <thead>
    <tr>
      <th>th</th>
      <th>th</th>
      <th>th</th>
      <th>th</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>td</td>
      <td>td</td>
      <td>td</td>
      <td>td</td>
    </tr>
    <tr>
      <td>td</td>
      <td>td</td>
      <td>td</td>
      <td>td</td>
    </tr>
    <tr class="hide">
      <td>hidden-row</td>
      <td>td</td>
      <td>td</td>
      <td>td</td>
    </tr>
    <tr>
      <td>td</td>
      <td>td</td>
      <td>td</td>
      <td>td</td>
    </tr>
  </tbody>
</table>

如果内容只是要隐藏的文本,font-size & line-height 的另一种选择:

.hide {
  font-size:0;/* hide text */
  line-height:0;/* reduce line-height*/
  letter-spacing:0.46rem; /* eventually reset letter-spacing  */
}
<div class="container-fluid">
  <input type="text" (input)="filter($event.target.value)" />
  <table #table=''>
    <tr>
      <th>Name</th>
      <th>Favorite Color</th>
    </tr>
    <tr>
      <td>Bob</td>
      <td>Yellow</td>
    </tr>
    <tr class="hide">
      <td>Michelle</td>
      <td>Purple</td>
    </tr>
    <tr>
      <td>John</td>
      <td>Green</td>
    </tr>
    <tr>
      <td>Mike</td>
      <td>Blue</td>
    </tr>
    <tr>
      <td>Jane</td>
      <td>Red</td>
    </tr>
  </table>

</div>

关于html - 隐藏行 <tr> 而不从 DOM 中移除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43491068/

相关文章:

javascript - jquery - 动态取消选中单选按钮后刷新按钮

php - HTML5Blank WordPress 主题不读取 style.css

html - 边框,在单元格附近重叠

javascript - Bootstrap 可切换标签图像

Angular 4/ionic 3 自定义属性指令不起作用

javascript - Firebase 更新数据,但几秒钟后将其更改回原始值 "angularFire"

css - 哪些浏览器支持 CSS 显示属性的多个关键字值?

jquery - 分页到下一页时 td 剪切

html - 将图像和 ul 放在同一行

javascript - 如何声明一个全局函数来从浏览器控制台调用 Angular 服务?