我首先有一张桌子,让我们说由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();
但我找不到指定所选内容中文本的方法..
答案 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();
}