jQuery根据表内容隐藏行

时间:2014-07-11 22:19:09

标签: javascript jquery html-table

我首先有一张桌子,让我们说由tr和td定义的4x4 最后一个td包含一个复选框,它只能是2个选项,完整或不完整(选中或取消选中)。

现在,在表格的顶部,我有另一个用作过滤器的下拉列表(全部,已完成,未完成)

根据过滤器值,我的JS会隐藏或显示请求的数据:

    var sel = $("#Filter option:selected").text();

    if (sel == "All") {
        $('tr').find('td:has(:checkbox:checked)').parent().show();
        $('tr').find('td:has(:checkbox:not(:checked))').parent().show();
    }
    if (sel == "Complete") {
        $('tr').find('td:has(:checkbox:not(:checked))').parent().hide();
        $('tr').find('td:has(:checkbox:checked)').parent().show();
    }
    if (sel == "Incomplete") {
        $('tr').find('td:has(:checkbox:checked)').parent().hide();
        $('tr').find('td:has(:checkbox:not(:checked))').parent().show();
    }

这是一种魅力。

现在,我想更改下拉列表的复选框。 但是我找不到JQuery的方法来做到这一点。 我不知道比较tr。

里面td内的下拉列表中的文本的语法

我试过了:

$('tr').find('td').find(".dropdown :selected").parent().hide();

但我找不到指定所选内容中文本的方法..

2 个答案:

答案 0 :(得分:1)

使用类似的东西:

$("tr td .dropdown:selected[value='WHATEVER']").parent().hide();

测试drop元素的值。或者,如果您想测试下拉元素的文本:

$("tr td .dropdown:selected:contains(WHATEVER)").parent().hide();

答案 1 :(得分:0)

您实际上需要获取复选框的值,然后将其选择比较为完整或不完整。像这样:

if ($('tr').find('td').find(".dropdown option:selected").val() == "SOMEVALUE") {
    ($('tr').find('td').find(".dropdown option:selected").parent().hide();
} else {
    ($('tr').find('td').find(".dropdown option:selected").parent().show();
}