Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使jquery批量复选框标记器更通用_Javascript_Jquery_Asp.net_Checkbox - Fatal编程技术网

Javascript 使jquery批量复选框标记器更通用

Javascript 使jquery批量复选框标记器更通用,javascript,jquery,asp.net,checkbox,Javascript,Jquery,Asp.net,Checkbox,我创建了一个JQuery例程,使用主复选框检查页面上的所有复选框 我对这个功能总体上很满意,它对我的服务也很好,但它不是很通用,我现在已经将它复制/粘贴到我的解决方案中的许多页面中 我还有两个页面需要复制/粘贴两次,因为一个页面上有两组复选框,需要单独控制。这不好 我真的很想将其泛化,并将其塞进我的主.js脚本文件中,但我不知道从哪里开始!我希望能够使用一个类系统来告诉JQuery哪个复选框集由哪个主复选框控制 你能帮忙吗?我觉得一个解决方案将极大地提高我的jquery能力 (注意:请原谅标记中

我创建了一个JQuery例程,使用主复选框检查页面上的所有复选框

我对这个功能总体上很满意,它对我的服务也很好,但它不是很通用,我现在已经将它复制/粘贴到我的解决方案中的许多页面中

我还有两个页面需要复制/粘贴两次,因为一个页面上有两组复选框,需要单独控制。这不好

我真的很想将其泛化,并将其塞进我的主.js脚本文件中,但我不知道从哪里开始!我希望能够使用一个类系统来告诉JQuery哪个复选框集由哪个主复选框控制

你能帮忙吗?我觉得一个解决方案将极大地提高我的jquery能力

(注意:请原谅标记中的类,这是由于asp.net呈现复选框的糟糕方式造成的)

$(函数(){
$(“.checkAllLeft”)。单击(函数(){
如果($(“.checkAllLeft”).is(“:checked”)){
$(“.LeftCheckbox”)。每个(函数(){
var checkbox=$(this.find(“输入”)
if(checkbox.prop(“disabled”)==false){checkbox.prop(“checked”,true);}
});
}否则{
$(“.LeftCheckbox”)。每个(函数(){
var checkbox=$(this.find(“输入”)
if(checkbox.prop(“disabled”)==false){checkbox.prop(“checked”,false);}
});
}
});
});
$(函数(){
$(“.checkAllRight”)。单击(函数(){
如果($(“.checkAllRight”).is(“:checked”)){
$(“.RightCheckbox”)。每个(函数(){
var checkbox=$(this.find(“输入”)
if(checkbox.prop(“disabled”)==false){checkbox.prop(“checked”,true);}
});
}否则{
$(“.RightCheckbox”)。每个(函数(){
var checkbox=$(this.find(“输入”)
if(checkbox.prop(“disabled”)==false){checkbox.prop(“checked”,false);}
});
}
});
});

选中所有左侧
检查是否正确

要实现这一点,您可以使用DOM遍历查找与“全选”选项相同容器(即同一列)中的所有复选框,然后将它们设置为相同的值。大概是这样的:

$(“.check all”).change(函数(){
var tdIndex=$(this).closest('td').index()+1;
$('table tr td:nth child('+tdIndex+'):checkbox').prop('checked',this.checked');
});
表格,
th,
运输署{
边框:1px纯黑;
}

选中所有左侧
检查是否正确

我不确定这次DOM遍历是否是我所追求的,复选框将存在于列中的表中。我会很快重新摆弄我的js小提琴。是的,边境很糟糕。我想要一个快速而肮脏的方式来视觉上分离这两套支票!DOM遍历正是使代码干燥所需要的。只是方法可能会根据DOM的结构而改变!您能想出一种DOM遍历方法来进行重新构造的小提琴吗?我要去想一想,这将与使用span标记上的类从最初的复选框开始工作有关。很抱歉把你原来的回答也扯到一边了!这是对原始示例的一个建议。这是软木塞,我将专注于我的选择器语法和链接!这也解决了可怕的复选框渲染问题。干杯