javascript - 如何根据鼠标单击时的选择选项仅显示 html 表中的行?
问题描述
在我的表格中,我只想显示在下拉列表中选择的那些行。
例如:
- 通过选择“全部”选项,表格应显示所有行。
- 通过选择“2017”选项,表格应仅显示第二列中包含“2017”的行。
- 通过选择“2018”选项,表格应仅显示第二列中包含“2018”的行。
我希望在下拉列表中选择年份的那一刻显示行。
<select name="year">
<option value="All">All</option>
<option value="2017">2017</option>
<option value="2018">2018</option>
</select>
<br><br>
<table border="1">
<tr><td width="5%"> 1 </td><td width="30%">2017</td></tr> <br>
<tr><td> 2 </td><td>2018</td>
<tr><td> 3 </td><td>2017</td>
<tr><td> 4 </td><td>2017</td>
<tr><td> 5 </td><td>2018</td>
<tr><td> 6 </td><td>2017</td>
<tr><td> 7 </td><td>2018</td>
</tr>
</table>
解决方案
尝试这个
$(document).ready(function(){
$("#year").on('click', function(){
var yr = $(this).val();
$("table tr").each(function(index){
var val = $(":nth-child(2)", this).html();
if(yr === 'All') {
$(this).show();
} else if(val == yr) {
$(this).show();
} else {
$(this).hide();
}
});
})
;
$("#year").trigger('click');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="year" name="year">
<option value="All">All</option>
<option value="2017">2017</option>
<option value="2018">2018</option>
</select>
<br><br>
<table border="1">
<tr><td width="5%"> 1 </td><td width="30%">2017</td></tr> <br>
<tr><td> 2 </td><td>2018</td>
<tr><td> 3 </td><td>2017</td>
<tr><td> 4 </td><td>2017</td>
<tr><td> 5 </td><td>2018</td>
<tr><td> 6 </td><td>2017</td>
<tr><td> 7 </td><td>2018</td>
</tr>
</table>
推荐阅读
- python - 熊猫:在字符串列中填充占位符
- javascript - jquery如何判断我点击的td是第一行还是最后一行,以及行索引和列索引?
- openstack - 为什么我的 Gnocchi 测量频率与设置的粒度不匹配
- java - 将 pom.xml 打包成 JAR 时替换变量
- php - 多对多主义,只坚持一边
- postgresql - PostgreSQL 复制 - 使用 pg_recvlogical 和 wal2json 读取后如何更新 LSN?(没有超级用户)
- asp.net - 此文件中不允许使用代码块 - 我的 web.confi 文件在哪里
- c# - 如何使用 asp.net 路由 C#?
- mongodb - 查找枚举值列表的好方法是什么?
- php - 使用距离矩阵从点到点计算票价