如何组合检查所有脚本和过滤?

时间:2011-03-05 20:33:50

标签: javascript jquery

我是JavaScript和jQuery的新手,但之前使用过HTML和CSS。无论如何,我很感激帮助。我已经实现了这里讨论的脚本http://net.tutsplus.com/tutorials/javascript-ajax/using-jquery-to-manipulate-and-filter-data/用于过滤数据,这里讨论的脚本http://www.dustindiaz.com/check-one-check-all-javascript/用于检查所有脚本。问题是,当我过滤项目列表然后使用check all框时,它甚至会检查由于过滤而对用户隐藏的JS项目。这有意义吗?

我一直在试图弄清楚如何编辑check all脚本,以便只使用checkAll按钮检查具有“visible”类(添加到带有过滤脚本的可见复选框)的项目。原始剧本有:

var checks = document.getElementsByName('del[]');

我试图做这样的事情(当然没有用):

var visiblechecks = $('input:del[]:checked.visible');

等等。

谢谢!此外,如果您有推荐的资源,我将不胜感激。

2 个答案:

答案 0 :(得分:1)

var visiblechecks = $('input[name="del[]"]:checked:visible');

答案 1 :(得分:0)

你的选择器只需要一点改进。尝试:

$(".myCheckAllSelector").change(function () {
    $("input[name='del[]']:visible").attr("checked", $(this).is(":checked"));
});

这应该将名为del []的所有当前可见复选框的checked属性设置为check all框的选中状态。您只需要适当更新check all选择器以定位master复选框元素。

您不一定“需要”添加可见类,因为您可以使用:visible过滤器为您做出决定。但是,如果您仍希望使用该类并移除input过滤器,只需将您的选择器从input.visible更改为:visible