jquery如何实现:select选框有“已支付”和“未支付”两个option选项,在选中“未支付”选项时,只把td中含有“未支付”的所有行打印出来,在选中“已支付”选项时,只渲染td中含有“已支付”的行
时间: 2023-09-15 08:18:36 浏览: 95
您可以使用jQuery的`change()`方法来监听select选框的变化,并使用`filter()`方法来过滤表格行。
首先,您需要在HTML中定义一个select选框和一个表格,类似下面的代码:
```html
<select id="payment-status">
<option value="">全部</option>
<option value="paid">已支付</option>
<option value="unpaid">未支付</option>
</select>
<table id="payment-table">
<thead>
<tr>
<th>订单号</th>
<th>金额</th>
<th>状态</th>
</tr>
</thead>
<tbody>
<tr>
<td>0001</td>
<td>100.00</td>
<td>已支付</td>
</tr>
<tr>
<td>0002</td>
<td>50.00</td>
<td>未支付</td>
</tr>
<tr>
<td>0003</td>
<td>80.00</td>
<td>已支付</td>
</tr>
</tbody>
</table>
```
然后,您可以使用以下jQuery代码来实现所需功能:
```javascript
$(document).ready(function() {
// 监听select选框的变化
$('#payment-status').change(function() {
// 获取选中的option的值
var selectedValue = $(this).val();
// 过滤表格行
$('#payment-table tbody tr').filter(function() {
// 如果选中的是“全部”,则显示所有行
if (selectedValue === '') return true;
// 否则,只显示符合条件的行
return $(this).find('td:last-child').text() === selectedValue;
}).show().siblings().hide();
});
});
```
这段代码首先使用`change()`方法监听select选框的变化,然后获取选中的option的值。接着,使用`filter()`方法过滤表格行,如果选中的是“全部”,则显示所有行;否则,只显示符合条件的行。最后,使用`show()`和`siblings().hide()`方法来显示和隐藏符合条件的行和不符合条件的行。
阅读全文