如何用JavaScript实现表格搜索功能

北极星光 2024-03-05 ⋅ 96 阅读

在网页开发中,表格是非常常见和重要的组件之一。而对于大型的数据表格,为了提升用户体验,我们通常需要添加一个搜索功能,让用户可以快速找到他们想要的信息。在这篇文章中,我将教你如何使用 JavaScript 实现表格搜索功能。

简介

首先,我们需要明确我们的目标:在一个包含多行和多列的表格中,实现一个搜索输入框,用户可以通过输入关键字来搜索表格,并高亮显示匹配的结果。

准备工作

在开始之前,我们需要一个带有一些数据的表格,以及一个文本输入框和一个按钮,用户可以在输入框中输入关键字,并通过点击按钮来触发搜索。下面是一个示例的 HTML 结构:

<!DOCTYPE html>
<html>
<head>
    <title>表格搜索功能</title>
    <style>
        table {
            border-collapse: collapse;
            width: 100%;
        }
        
        td, th {
            border: 1px solid #dddddd;
            text-align: left;
            padding: 8px;
        }
        
        tr:nth-child(even) {
            background-color: #dddddd;
        }
    </style>
</head>
<body>
    <input type="text" id="searchInput">
    <button onclick="searchTable()">搜索</button>
    
    <table id="myTable">
        <tr>
            <th>姓名</th>
            <th>年龄</th>
            <th>性别</th>
        </tr>
        <tr>
            <td>张三</td>
            <td>25</td>
            <td>男</td>
        </tr>
        <tr>
            <td>李四</td>
            <td>30</td>
            <td>男</td>
        </tr>
        <tr>
            <td>王五</td>
            <td>28</td>
            <td>女</td>
        </tr>
    </table>
</body>
</html>

在上述代码中,我们创建了一个包含三列的表格,并在最上方添加了一个输入框和一个按钮。这个输入框和按钮后面会用 JavaScript 来添加事件监听,实现搜索功能。

实现搜索功能

现在让我们来写一些 JavaScript 代码来实现搜索功能。我们首先需要获取输入框和表格的引用,然后通过添加事件监听来实现搜索功能。下面是一种实现方式:

function searchTable() {
    // 获取输入框的值
    var input = document.getElementById('searchInput');
    var filter = input.value.toUpperCase();
    
    // 获取表格的引用
    var table = document.getElementById('myTable');
    
    // 获取表格中的每一行
    var trs = table.getElementsByTagName('tr');
    
    // 遍历每一行,判断是否满足搜索条件
    for (var i = 1; i < trs.length; i++) {
        var tr = trs[i];
        
        // 获取当前行的所有单元格
        var tds = tr.getElementsByTagName('td');
        
        // 标记当前行是否需要显示
        var shouldDisplay = false;
        
        // 遍历当前行的每一个单元格,判断是否满足搜索条件
        for (var j = 0; j < tds.length; j++) {
            var td = tds[j];
            
            // 如果当前单元格的文本包含搜索关键字,将 shouldDisplay 设置为 true,并退出循环
            if (td.innerHTML.toUpperCase().indexOf(filter) > -1) {
                shouldDisplay = true;
                break;
            }
        }
        
        // 根据 shouldDisplay 的值来设置当前行的显示与隐藏
        if (shouldDisplay) {
            tr.style.display = "";
        } else {
            tr.style.display = "none";
        }
    }
}

在上述代码中,我们首先获取了输入框的值,并将其转换为大写字母,以便进行大小写不敏感的搜索。然后,我们获取到了整个表格的引用以及每一行的引用。通过遍历每一行,我们再次使用循环来遍历每一个单元格,并判断其文本是否包含搜索关键字。最后,我们根据判断结果来设置当前行的显示与隐藏。

结束语

通过上述的步骤,我们已经成功地使用 JavaScript 实现了表格的搜索功能。当用户输入关键字并点击搜索按钮时,我们会根据关键字来过滤表格中的数据,并高亮显示匹配的结果。这样,用户就可以更方便地找到他们需要的信息了。希望这篇文章能对你有所帮助!


全部评论: 0

    我有话说: