根据其他行中的内容筛选HTML表行
Filter HTML table rows based on content in other rows
我的HTML网站中有一个表,我正在有效地将其用作显示项目的列表。
每个项目都有:
- 列[0]中的图像
- 列[1]中的名称
- 第[2]列中的说明
它比这稍微复杂一些,列[0]和[2]有一个rowspan="2"
,每个项在表中有第二行,它的两个类别显示在列[1]的名称下面。
这意味着它最终看起来像这样:https://jsfiddle.net/vapdp54z/2
我想在我的网站上的某个地方打勾,默认情况下,没有勾选,所有项目都显示出来。勾选复选框后,我希望隐藏所有没有复选框内容作为其类别的项目。
我在stackoverflow上发现了类似的问题,它们做了类似的事情,但它们对我不起作用,因为在我的情况下,我需要每隔一行检查一次,当没有找到匹配项时,它需要隐藏那一行和上面的那一行。
谢谢。
如果你的复选框看起来像这样:
<div>
<input type="checkbox" name="categories" value="CATEGORY1"> Category One<br>
<input type="checkbox" name="categories" value="CATEGORY2"> Category Two<br>
<input type="checkbox" name="categories" value="CATEGORY3"> Category Three<br>
<input type="checkbox" name="categories" value="CATEGORY4"> Category Four <br>
</div>
然后,您可以使用它们的值来隐藏任何包含匹配值的td的表行,也可以隐藏前一行,如下所示:
$(document).ready(function() {
$('input[name=categories]').click(function() {
// get the value of the clicked checkbox
var cat = $(this).val();
// select odd rows (the ones containing categories)
$('tr:odd').each(function() {
// get the td's in the row
$('td', this).each(function() {
// if the td html contains the category,
// hide its parent row and the previous row
if ($(this).html().indexOf(cat) > -1)
{
$(this).parent().css('display','none');
$(this).parent().prev().css('display','none');
}
});
});
});
});
当复选框未选中时,此解决方案不会处理隐藏行的撤消,但这将非常简单
以下是更新小提琴的链接:https://jsfiddle.net/vapdp54z/3/
我希望这能有所帮助!
编辑:我没有仔细阅读你的问题
如果您想隐藏不包含该类别的所有行,只需在IndexOf()检查
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- 如何设置html元素填充的动画
- 使用JQuery通过下拉菜单筛选HTML表值
- 计数HTML表中筛选的结果
- 如何筛选要写入新文档的HTML,删除JavaScript中的某些类和/或ID
- Html和javascript<选择>带有筛选的标签
- 使用javascript单击按钮,根据值筛选html表
- 筛选包含大数据的html表(超过12K行)
- 功能性 HTML 表(排序、筛选、移动和切换列)
- 使用输入文本框搜索和筛选 html 表数据
- JavaScript-正在筛选'<'足够好,可以在显示之前保护HTML
- 根据其他行中的内容筛选HTML表行
- HTML实时筛选表
- 为javascript输出筛选HTML
- 通过HTML SELECT对象筛选Json功能
- 使用html select对筛选表进行ajax刷新
- 带筛选器的HTML选择字段
- 使用javascript从html列表中筛选元素
- jQuery Json筛选并附加到HTML选择器
- HTML中按条件进行角度自定义筛选;不起作用