当涉及到jQuery时,我还是个新手。但我有件事要做。我知道可以使用各种插件来让它变得更容易,但这不是重点。
我有一个简单的HTML表,并且我正在过滤结果(在本例中,我是通过Author字段过滤的),但是我到底如何才能创建一个从1950年到1960年的过滤器呢?有什么简单的方法可以编辑我的代码来做到这一点吗?我不能想出一个解决方案,尽管我觉得它应该很简单。
另外,有没有办法让过滤不区分大小写?提前感谢!
<input type="text" id="filter-input" value=""/><br/>
<table class="table-class">
<tr>
<th>Bookname</th><th>Author</th><th>Publish date</th>
</tr>
<tr>
<td>Exaple</td><td>Matt</td><td>1951</td>
</tr>
<tr>
<td>Example2</td><td>John</td><td>1990</td>
</tr>
<tr>
<td>Example3</td><td>Ted</td><td>1955</td>
</tr>
</table>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script>
var filter = $("#filter-input");
filter.keyup(function(e) {
var author = $(this).val();
$('.table-class tr:not(:first)').filter(function() {
if (!$(this).find('td:eq(1)').is(':contains("' + author + '")')) {
return true;
}
else {
$(this).show();
return false;
}
}).hide();
});
</script>发布于 2013-12-30 06:50:22
您可以按您喜欢的任何方式进行筛选,要按年份进行筛选,您可以执行以下操作:
$('.table-class tr:not(:first)').filter(function() {
var txt = $('td', this).last().text(),
year = parseInt(txt, 10);
return year > 1950 || year < 1960
}).hide();要使其不区分大小写,请执行以下操作:
$('.table-class tr:not(:first)').filter(function() {
var txt = $('td', this).eq(1).text().toLowerCase();
return txt.indexOf(author.toLowerCase()) != -1;
}).hide();https://stackoverflow.com/questions/20830945
复制相似问题