jQuery中的过滤器表?或角度JS
Filter table in jQuery? or angularJS
我希望能够过滤我的表,表是这样的
name | date | agencyID
test 2016-03-17 91282774
test 2016-03-18 27496321
我希望能够有一个包含所有"agencyID"的下拉列表,当我选择它时,它只显示带有此机构ID的表格行。我有一个类似的东西,您可以在输入类型文本中搜索任何内容。
这就是该部分的工作方式,是否有任何类似的方法可以通过选择下拉列表执行此操作?
(function ($) {
$('#filter').keyup(function () {
var rex = new RegExp($(this).val(), 'i');
$('.searchable tr').hide();
$('.searchable tr').filter(function () {
return rex.test($(this).text());
}).show();
})
}(jQuery));
如果这是一个更好的选择,我愿意实现 angularJS
您可以在选择下拉列表中执行更改处理程序。
.html:
<script src="//code.jquery.com/jquery-1.12.0.min.js"></script>
<select id="filter">
<option value="">Choose a filter</option>
<option value="1231423424">1231423424</option>
<option value="456456e54">456456e54</option>
<option value="123488745">123488745</option>
</select>
<table id="searchable">
<tr>
<th>name</th>
<th>date</th>
<th>agencyID</th>
</tr>
<tr>
<td>test 1</td>
<td>date 1</td>
<td>1231423424</td>
</tr>
<tr>
<td>test 2</td>
<td>date 2</td>
<td>456456e54</td>
</tr>
<tr>
<td>test 3</td>
<td>date 3</td>
<td>456456e54</td>
</tr>
<tr>
<td>test 4</td>
<td>date 4</td>
<td>123488745</td>
</tr>
<tr>
<td>test 5</td>
<td>date 5</td>
<td>123488745</td>
</tr>
</table>
Javascript:
$(document).ready(function(){
$('#filter').change(function(){
var filterValue = $(this).val();
if(filterValue==""){
$("#searchable tr").show();
} else{
$("#searchable tr").hide();
$("#searchable td:nth-child(3)").each(function(){
if( $(this).text() == filterValue){
$(this).parent().show();
}
});
}
});
});
在小提琴中看到它
这是使用 :contains() 选择器的另一个实现
$select.on('change', function(){
$('.highlight').removeClass('highlight');
var id = $(this).val();
$('table').find("tr:contains('"+id+"')").addClass('highlight');
});
在这里摆弄
您可以向 tr 添加一个作为代理机构的 ID
<select id="select">
<option value=""></option>
<option value="91282774">91282774</option>
<option value="27496321">27496321</option>
</select>
<table id="mytable">
<tr><th>name</th><th>data</th><th>agency</th></tr>
<tr id="91282774"><td>test</td><td>2016-03-17</td><td>91282774</td></tr>
<tr id="27496321"><td>test</td><td>2016-03-18</td><td>27496321</td></tr>
</table>
并在更改选择时搜索 ID
$(document).ready(function(){
$("#select").change(function(){
var value = $(this).val();
if(value == "")
$("#mytable tr").show();
else{
$("#mytable tr[id=" + value + "]").show();
$("#mytable tr[id][id!=" + value + "]").hide();
}
});
});
小提琴
相关文章:
- Angular js过滤器在某些移动设备上不起作用
- 显示骨干js过滤器
- 自定义Angular.js过滤器在IE8中不返回任何内容,在Chrome/FF中运行良好
- 如何将Underscore.js过滤器与对象一起使用
- 如何使用angular js过滤器格式化数组中的值
- 数组中的Angular js过滤器数组
- 角度 JS 过滤器
- 我的PIXASTIC“Lighten.js”过滤器Javascript和HTML5代码不起作用
- Angular-js 过滤器以查找空字符串
- Angular JS过滤器反向
- Sigma.js过滤器问题
- 为什么我的angular .js过滤器运行了4次
- 对翻译后的句子应用Angular-JS过滤器
- Angular JS过滤器——如果new value为空,就不更新DOM值
- 使用Angular JS过滤器安排搜索
- JS过滤器方法在赋值给变量时返回一个空数组
- Angular js过滤器中的多重选择
- Vue.js过滤器中的异步数据
- 为什么这个Angular JS过滤器要删除空格?
- 在backgrid.js过滤器中预设搜索词