Amit Dhamu

Writes Code

Filter Table Results

The function below will allow you to use a text input to filter the results of a table with live updating of the table rows.

HTML

<!-- Your Table -->
<table class="default-table">
    <thead>
        <tr>
            <th>Name</th>
            <th>Age</th>
            <th>Gender</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>John Smith</td>
            <td>30</td>
            <td>Male</td>
        </tr>
        <tr>
            <td>Mary Jane</td>
            <td>25</td>
            <td>Female</td>
        </tr>
        <tr>
            <td>Steve Jackson</td>
            <td>45</td>
            <td>Male</td>
        </tr>
    </tbody>
</table>

<!-- Filter Text Input -->
<input id="filter-input" type="text" placeholder="Filter Table Here"/>



Function Setup and Execution

function filterTable(search, table) {
    $(table + " tr:hidden").show();

    $.each(search, function() {
        $(table + " tr:visible .indexColumn:not(:contains('" + this + "'))").parent().hide();
    });
}

$(document).ready(function() {
    $("table tr:has(td)").each(function() {
        var t = $(this).text().toLowerCase();
        $("<td class='indexColumn'></td>").hide().text(t).appendTo(this);
    });

    $("#filter-input").keyup(function() {
        var search_term = $(this).val().toLowerCase().split(" ");
        filterTable(search_term, ".default-table");
    });
});


filter / keyword / live / search

← Box Shadow Return Row Count →