开发者

jquery table row selector based on user input

开发者 https://www.devze.com 2023-01-18 12:42 出处:网络
How do I select rows depending on what\'s in an input box? Here\'s what I have so far: <html> <head>

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"></script>
<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>
&l开发者_如何学编程t;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>


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.


$(document).ready(function() {
    $('#btnFilter').keyup(function() {
        var myInput = $(this).val();
        $('tbody tr').hide().find('td:contains("'+myInput+'")').parents('tr:first').show()
    });
});
0

精彩评论

暂无评论...
验证码 换一张
取 消