答案 0 :(得分:1)
除了使用keyup
而不是使用change
事件以外,几乎是相同的。
此外,您应该使用.each()
而不是filter()
,因为您不会在任何地方返回该值。
您需要将选项的值设置为您希望它们匹配的值,而不是error
。
$("#myInput").on("change", function() {
var value = $(this).val().toLowerCase();
$("#myTable tr").each(function() {
$(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)
});
});
table {
font-family: arial, sans-serif;
border-collapse: collapse;
width: 100%;
}
td,
th {
border: 1px solid #dddddd;
text-align: left;
padding: 8px;
}
tr:nth-child(even) {
background-color: #dddddd;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select name="Filter" id="myInput">
<option id="myInput" value="john">John</option>
<option id="myInput" value="warning">Warning</option>
</select>
<table>
<thead>
<tr>
<th>Log</th>
</tr>
</thead>
<tbody id="myTable">
<tr>
<td>dafsdfkj Error sdfkjlsdafj dsafjk</td>
</tr>
<tr>
<td>Warning dfadf adf</td>
</tr>
<tr>
<td>John did it</td>
</tr>
</tbody>
</table>
答案 1 :(得分:0)
$(document).ready(function(){
$("#myInput").on("change", function() {
var value = $(this).val().toLowerCase();
$("#myTable tr").filter(function() {
$(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)
});
});
});
table {
font-family: arial, sans-serif;
border-collapse: collapse;
width: 100%;
}
td,
th {
border: 1px solid #dddddd;
text-align: left;
padding: 8px;
}
tr:nth-child(even) {
background-color: #dddddd;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select name="Filter" id="myInput">
<option value="">All</option>
<option value="John">John</option>
<option value="Warning">Warning</option>
</select>
<table>
<thead>
<tr>
<th>Log</th>
</tr>
</thead>
<tbody id="myTable">
<tr>
<td>dafsdfkj Error sdfkjlsdafj dsafjk</td>
</tr>
<tr>
<td>Warning dfadf adf</td>
</tr>
<tr>
<td>John did it</td>
</tr>
</tbody>
</table>