您好我正在制作一个脚本来检查与主复选框相关的所有从属复选框。这将使用类完成。因此主复选框将具有类似“master1”,“master2”等的类。相关的从属复选框将具有“slave1”类(与master1相关),“slave2”(与master2相关)等。
所以我将从:
开始jQuery('.checks_div input[type="checkbox"].^="master"').click(function(){
因此,当点击主人时,我想选择所有相关的奴隶并检查它们。但是如何?
由于
答案 0 :(得分:3)
$('input[type="checkbox"][class^="master"]').on("click",function(){})
但委托更好
$(document.body).on('click','input[type="checkbox"][class^="master"]',function(){})
然后在点击功能&如果你的奴隶在相邻的div中与主复选框
var $slaves=$(this).next().find('input[type="checkbox"][class*="slave"]')
如果html不同,可以选择从这个$(this)中选择那些奴隶的方法,这就是刚检查的方框
一旦你的奴隶在一个jquery对象中,检查它们:
$slaves.prop('checked', true);
请参阅Setting "checked" for a checkbox with jQuery?
如果除了检查它们之外什么都不做,你甚至不需要在jquery对象中缓存你的奴隶
$(this).//chain to select slaves
.prop('checked', true)
答案 1 :(得分:0)
这是我来的代码:
$(document.body).on('click','input[type="checkbox"][class^="master"]',function(){
var slaves = $(this).next('label').next('div.slaves').find('input[type="checkbox"][class*="slave"]');
var master = $(this);
$(slaves).attr('checked', $(this).is(':checked'));
});
这很有效。虽然我发现了jquery 1.9.0及更高版本中可能存在的错误。这里: http://jsfiddle.net/x3NpL/
1.8.3工作正常,如果你走高,它会工作两次并停止工作..非常奇怪。顺便说一下,如果使用$(slaves).click(),则不会发生这种情况,但click()没有达到预期的结果。无论如何,我使用的解决方案是添加一个div来包含相关的奴隶,但我仍然想知道如何在没有div的情况下做到这一点。这个想法很简单:抓住master上的点击,获取它的类号(master14 - number 14等),检查所有带有这个号码的从站(slave14)。 考虑到这个类可能包含多个类,例如class =“class1 class2 master14”,我只是不知道如何从中获取数字。
由于