Assume I have a standard HTML table structure like:
<table class="table table-striped table-hover table-bordered table-condensed">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Added</th>
</tr>
</thead>
<tbody>
<tr id="1a0daa2734" class="item">
<td><a href="/view/1a0daa2734">Item Number 1</a></td>
<td>A</td>
<td>8/1/2012 10:18:34 PM</td>
</tr>
<tr id="b1ff6e0ac" class="item">
<td><a href="/view/b1ff6e0ac">Item Number 2</a></td>
<td>B</td>
<td>8/2/2012 5:48:54 PM</td>
</tr>
<tr id="edd8b70893" class="item">
<td><a href="/view/edd8b70893">Item Number 3</a></td>
<td>A</td>
<td>8/13/2012 3:55:41 PM</td>
</tr>
</tbody>
</table>
I am trying to write client side searching with jQuery. Basically I have a search box with an id of search-items.
$("#search-items").bind("keyup paste", function() {
var searchText = $("#search-items").val();
$(".item").each(function() {
//???
});
});
What is the best way to take the search value of search-items and find the NON-MATCHES inside of the tbody? I want the non-matches, because those are the elements I will hide.
It should only search inside the first two td elements, so the name and type columns, not added.
Thanks.
The following code will try and match the values as you type them to either column1 or 2.
DEMO – Searching your table by column 1 and 2 values individually (not added)
I’m sure there is a much more efficient way of writing it but this should get you started.