当我使用复选框时,一切都很好,并且排序/过滤工作正常,直到我取消选中所有内容为止。然后所有数据都消失了。
我希望取消选中复选框后所有数据都可见。我该如何实现?
顺便说一句。我使用的代码不是我的。我是JS / JQuery的菜鸟。
非常感谢您的帮助。
我一直在寻找解决方案并尝试了数十种选择,但是我是菜鸟,我无法弄清楚。
一切都可以在小提琴上找到:http://jsfiddle.net/kXNAg/。
$(":checkbox").change(function() {
var checkedValues = $(":checkbox:checked").map(function() {
return this.value;
}).get();
$("tbody tr").hide();
for (var i = 0; i < checkedValues.length; i++) {
$("tbody tr td:contains('" + checkedValues[i] + "')").parent("tr").show();
}
});
实际:您单击复选框,对表进行排序,一切都很好,然后您取消选中所有内容,并且数据被隐藏。
预期:像上面一样,但是当您取消选中复选框时,表数据都是可见的。
答案 0 :(得分:0)
如果未进行任何检查,则需要返回默认状态:
if(checkedValues.length === 0) return $("tbody tr").show();
答案 1 :(得分:0)
检查checkedValues
数组的长度并做出相应的反应
$(":checkbox").change(function() {
var checkedValues = $(":checkbox:checked").map(function() {
return this.value;
}).get();
if (!checkedValues.length) {
$("tbody tr").show();
} else {
$("tbody tr").hide();
for (var i = 0; i < checkedValues.length; i++) {
$("tbody tr td:contains('" + checkedValues[i] + "')").parent("tr").show();
}
}
});