我是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');
等等。
谢谢!此外,如果您有推荐的资源,我将不胜感激。
答案 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
。