tags:

views:

29

answers:

2

How do I select rows depending on what's in an input box? Here's what I have so far:

<html>
<head>
<script src="http://www.google.com/jsapi"&gt;&lt;/script&gt;
<script type="text/javascript">
google.load("jquery", "1");
</script>
<script type="text/javascript">
$(document).ready(function() {
    $('#btnFilter').keyup(function() {
        var myInput = $(this).val();
        $('tbody tr').hide();
        // I need to .show() all table rows that have a table cell with a value that begins with the input field.
        $('tr').something goes here.show();
    });
});
</script>
</head>
<body>
<form>
    <input id="btnFilter" name="btnFilter">
</form>
<table>
    <thead>
        <tr>
            <th>Heading 1</th>
            <th>Heading 2</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>A</td>
            <td>X</td>
        </tr>
        <tr>
            <td>ABC</td>
            <td>D</td>
        </tr>
    </tbody>
</table>
</body>
</html>
+1  A: 

If you want a search, :contains() is probably what you're after, for example:

$('tr:contains("' + myInput + '")').show();

You can try it out here, or a cell-begins-with only version:

$('td').filter(function() {
  return $.text([this]).indexOf(myInput) == 0
}).parent().show();

You can try that version here.

Nick Craver
Zounds! Hey Nick! You're in W-S?! I'm in Hickory! How's the honeymoon?
cf_PhillipSenn
@cf_PhillipSenn - excellent :) trying to buy a house this week as well ;)
Nick Craver
+1  A: 
$(document).ready(function() {
    $('#btnFilter').keyup(function() {
        var myInput = $(this).val();
        $('tbody tr').hide().find('td:contains("'+myInput+'")').parents('tr:first').show()
    });
});
Praveen Prasad
Thanks Praveen!
cf_PhillipSenn