📜  复选框过滤器 (1)

📅  最后修改于: 2023-12-03 15:08:10.272000             🧑  作者: Mango

复选框过滤器

复选框过滤器是一种UI组件,用于允许用户根据所选选项过滤显示的内容。在Web应用程序中,它通常用于帮助用户快速找到他们感兴趣的内容。

使用场景

复选框过滤器适用于许多不同类型的应用程序,包括电子商务站点、新闻和媒体站点、在线活动日历等。如果您的应用程序提供了一个数据表格或其他类型的数据视图,复选框过滤器可以使用户轻松地过滤和查看他们感兴趣的内容。

实现方法

使用HTML、CSS和JavaScript可以实现复选框过滤器。以下是一个简单的HTML示例,显示了两个复选框和一个数据表格:

<label><input type="checkbox" name="filter" value="red"> Red</label>
<label><input type="checkbox" name="filter" value="blue"> Blue</label>

<table>
  <tr>
    <th>Name</th>
    <th>Color</th>
    <th>Price</th>
  </tr>
  <tr>
    <td>Shirt</td>
    <td>Red</td>
    <td>$20.00</td>
  </tr>
  <tr>
    <td>Pants</td>
    <td>Blue</td>
    <td>$30.00</td>
  </tr>
  <tr>
    <td>Socks</td>
    <td>Red</td>
    <td>$5.00</td>
  </tr>
</table>

要筛选表格中的内容,需要使用JavaScript编写代码,该代码在复选框被选中时隐藏或显示相应的行。以下是一个JavaScript示例:

var checkboxes = document.getElementsByName('filter');

for (var i = 0; i < checkboxes.length; i++) {
  checkboxes[i].addEventListener('change', filterTable, false);
}

function filterTable() {
  var rows = document.querySelectorAll('table tr');

  for (var i = 0; i < rows.length; i++) {
    var cells = rows[i].getElementsByTagName('td');
    var showRow = false;

    for (var j = 0; j < cells.length; j++) {
      if (checkboxes[0].checked && cells[j].innerHTML === 'Red') {
        showRow = true;
      }
      if (checkboxes[1].checked && cells[j].innerHTML === 'Blue') {
        showRow = true;
      }
    }

    if (showRow) {
      rows[i].style.display = '';
    } else {
      rows[i].style.display = 'none';
    }
  }
}

此示例使用addEventListener方法将所有已命名的复选框与一个名为filterTable的函数关联。当复选框被选中或取消选中时,filterTable函数运行以过滤表格中的内容。在该函数中,使用querySelectorAll方法获取表格中的所有行,并逐个检查每个单元格的值以确定是否应显示该行。

结论

复选框过滤器是一个方便的UI组件,可以帮助用户轻松查找他们感兴趣的内容。本文展示了一个简单的HTML、CSS和JavaScript解决方案来创建复选框过滤器。这个解决方案可以扩展,并用于不同类型的应用程序和数据视图。