Javascript 复选框以选择表中的所有行
我有一张桌子在桌子里面。基本结构如下Javascript 复选框以选择表中的所有行,javascript,jquery,html,checkbox,Javascript,Jquery,Html,Checkbox,我有一张桌子在桌子里面。基本结构如下 <input type="checkbox" name="CheckAll" id="CheckAll"/> <b>Click to select all Option Values</b> <table class="Parent"> <tr> <td><input type="checkbox" id="Parent">Parent1</td>
<input type="checkbox" name="CheckAll" id="CheckAll"/> <b>Click to select all Option Values</b>
<table class="Parent">
<tr>
<td><input type="checkbox" id="Parent">Parent1</td>
<td><table class="Children">
<tr><td><input type="checkbox" id="Child">Child1</td></tr>
<tr><td><input type="checkbox" id="Child">Child2</td></tr>
<tr><td><input type="checkbox" id="Child">Child3</td></tr>
<td>
</tr>
<tr>
<td><input type="checkbox" id="Parent">Parent2</td>
<td><table class="Children">
<tr><td><input type="checkbox" id="Child">Child1</td></tr>
<tr><td><input type="checkbox" id="Child">Child2</td></tr>
<td>
</tr>
现在,我尝试在选择父对象之一时选择所有子对象。假设我没有权限访问视图中的父id。如何仅访问与正在更改的复选框相邻的表?试试这个
$(this).parent().next('td').find(':checkbox').prop('checked', this.chekced);
作为旁注,您有多个相同id的元素,即
Parent
,这是错误的。您必须有唯一的ID。您可以使用classParent
来代替提供相同的id
$(this).parent().next('td').find(':checkbox').prop('checked', this.chekced);
作为旁注,您有多个相同id的元素,即
Parent
,这是错误的。您必须有唯一的ID。您可以使用classParent
而不是提供相同的id,您可以通过针对下一个TD,然后是它包含的表来实现这一点。请注意,您必须将父项、子项等更改为类,因为您不能有重复的ID
$('.Parent[type=checkbox]').on('change', function() {
$(this).closest('td')
.next('td')
.find('table input[type=checkbox]')
.prop('checked', this.checked);
});
您可以通过瞄准下一个TD,然后选择它包含的表来实现这一点。
请注意,您必须将父项、子项等更改为类,因为您不能有重复的ID
$('.Parent[type=checkbox]').on('change', function() {
$(this).closest('td')
.next('td')
.find('table input[type=checkbox]')
.prop('checked', this.checked);
});
相同的ID?????????无效标记…;)我能给出的最好的
id
是父对象本身的名称。将de id属性更改为classparent
,您可以通过选择。parent[type=checkbox]
@Joaquinglez:我会将其更改为class。。并使用adeneo的回答相同的ID?????????无效标记…;)我能给出的最好的id
是父对象本身的名称。将de id属性更改为classparent
,您可以通过选择。parent[type=checkbox]
@Joaquinglez:我会将其更改为class。。用adeneo的回答如果我把父母的名字作为身份证怎么办?行吗?在这种情况下,我应该在jquery中写些什么呢?您可以使用ParentYes类,而不是提供相同的id。我把它改成了课堂。谢谢你的回答如果我把父母的名字作为身份证怎么办?行吗?在这种情况下,我应该在jquery中写些什么呢?您可以使用ParentYes类,而不是提供相同的id。我把它改成了课堂。谢谢你的回复,关于你关于ID的说明,如果你知道你创建了无效的html,晚上还可以睡觉的话,你可以有副本。您可以更改选择器以处理重复项(我相信如果您使用“attribute equals”选择器指定id,它将工作,即使#id选择器不工作)。当然,上课是最好的选择。(我只是把注释放在上面,因为有时为项目编写JS的人不允许更改其他人创建的html。)@nnnnnn-这是真的,重复ID通常不会破坏任何东西,它只是无效的,就像span上的href
和其他许多可以做的事情$('[id=Parent]')
将获取所有元素,只是getElementById
仅获取第一个元素,当id作为选择器传递时,jQuery也在内部使用第一个元素。当然,如果可以更改HTML,那么使用类是更好的选择。关于你关于ID的注释,如果你仍然可以在晚上睡觉时知道你创建了无效的HTML,那么你可以有重复的。您可以更改选择器以处理重复项(我相信如果您使用“attribute equals”选择器指定id,它将工作,即使#id选择器不工作)。当然,上课是最好的选择。(我只是把注释放在上面,因为有时为项目编写JS的人不允许更改其他人创建的html。)@nnnnnn-这是真的,重复ID通常不会破坏任何东西,它只是无效的,就像span上的href
和其他许多可以做的事情$('[id=Parent]')
将获取所有元素,只是getElementById
仅获取第一个元素,当id作为选择器传递时,jQuery也在内部使用第一个元素。当然,如果可以更改HTML,那么使用类是更好的选择。