Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.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_List_Checkbox_Html Table - Fatal编程技术网

Javascript jQuery复选框操作

Javascript jQuery复选框操作,javascript,jquery,list,checkbox,html-table,Javascript,Jquery,List,Checkbox,Html Table,我有一个复选框列表,如下所示: <table> <tr><td><input type="checkbox" /> <label>Bla</label></td></tr> <tr><td><input type="checkbox" /> <label> + Bla Sub 1</label></td></tr>

我有一个复选框列表,如下所示:

<table>
 <tr><td><input type="checkbox" /> <label>Bla</label></td></tr>
 <tr><td><input type="checkbox" /> <label> + Bla Sub 1</label></td></tr>
 <tr><td><input type="checkbox" /> <label> + Bla Sub 2</label></td></tr>
 <tr><td><input type="checkbox" /> <label> + Bla Sub 3</label></td></tr>
 <tr><td><input type="checkbox" /> <label> + Bla Sub 4</label></td></tr>
 <tr><td><input type="checkbox" /> <label> + Bla Sub 5</label></td></tr>
 <tr><td><input type="checkbox" /> <label> + Bla Sub 6</label></td></tr>
 <tr><td><input type="checkbox" /> <label> Blub</label></td></tr>
 <tr><td><input type="checkbox" /> <label> + Blub Sub 1</label></td></tr>
 <tr><td><input type="checkbox" /> <label> + Blub Sub 2</label></td></tr>
 <tr><td><input type="checkbox" /> <label> + Blub Sub 3</label></td></tr>
 <tr><td><input type="checkbox" /> <label> + Blub Sub 4</label></td></tr>
 <tr><td><input type="checkbox" /> <label> Derp</label></td></tr>
 <tr><td><input type="checkbox" /> <label> etc...</label></td></tr>
</table>

布拉
+Bla Sub 1
+Bla Sub 2
+Bla Sub 3
+Bla Sub 4
+Bla Sub 5
+Bla Sub 6
布鲁布
+Blub Sub 1
+Blub Sub 2
+Blub Sub 3
+Blub Sub 4
德普
等
因此,我想对这样的列表启用“选择子类别”功能。不幸的是,对于ASP.NET混乱的ID呈现,我无法根据类别的ID或名称调用它们,因此我必须读取每个节点的内容,并取消/选择以
+
开头的所有复选框

因此,如果用户选择了
Bla
,则也应选择所有子列表
+Bla Sub#
,反之亦然


这怎么可能?我使用jQuery,所以它应该没有那么难,但我还不能开始了解如何检查列表内容…

您可以轻松地在ASP.net中向这些子复选框添加一个类,然后使用$('.className')对它们进行迭代。

这应该可以:

$('ul li:not(:contains("+"))').click(function(
 var current = $(this), check;
 check = (current.attr('checked') ^ true);
 $('ul li:contains("'+current.text()+'") checkbox').attr('checked',check);
}

不过我还没有测试过。它肯定会让你知道需要什么。如果您有任何问题,请发表评论。

当您勾选“Bla”时,这会使您的问题得到解决。所有“+Bla*”都会被勾选:

$('label:not(:contains(+))').prev(':checkbox').click(function(){
    var $this = $(this);
    $('label:contains("'+$this.next('label').text()+'")').prev(':checkbox')
    .attr('checked',$this.is(':checked'));
});

问题是,列表是在数据库的表上使用
DataBind()
DataSource()
自动生成的,因此我无法操作列表项本身:-/它确实可以工作,但没有达到预期的效果。。。我把你的函数分解了,主要的问题似乎是迭代,检查下面所有包含“+”的框,并将其转换为jQuery:-/我忘了提到,所有标签和复选框都在一个表中。。。谢谢微软,这就是你创建列表的方式?…Florian,请不要在你在StackOverflow上发布的任何内容中使用脏话。您的问题将被编辑以删除咒骂。