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()
});
});
精彩评论