一个简单的解决方案:
$('input[type="checkbox"]').change(function(){
var self = this,
checked = self.checked,
elClass = self.className.replace('id','');
$('td.' + elClass).find('input[type="checkbox"]').prop('checked',checked);
});
JS 小提琴演示。
如果复选框有一个类名(在这种情况下)并且该类名减去部分,则此方法有效(并且易于扩展),并且该类名与元素的类名相同。idleft
id
td
然而,使用下面的 HTML 更容易id
(而不是可能必须过滤潜在的类名列表并避免使用该replace()
方法):
<table>
<tbody>
<tr>
<td><span class="idclass"><input type="checkbox" id="left" class="idleft" name="selectALL" value="WLEVEL04" />Select All</span></td>
<td class="left"><input type="checkbox" name="unchecked[]" value="499703" /></td>
<td class="left"><input type="checkbox" name="unchecked[]" value="855155" /></td>
<td class="left"><input type="checkbox" name="unchecked[]" value="234203" /></td>
<td class="left"><input type="checkbox" name="unchecked[]" value="489741" /></td>
</tr>
<tr>
<td><span class="idclass"><input type="checkbox" id="different" class="iddifferent" name="selectALL" value="WLEVEL04" />Select All</span></td>
<td class="different"><input type="checkbox" name="differentName[]" value="499703" /></td>
<td class="different"><input type="checkbox" name="differentName[]" value="855155" /></td>
<td class="different"><input type="checkbox" name="differentName[]" value="234203" /></td>
<td class="different"><input type="checkbox" name="differentName[]" value="489741" /></td>
</tr>
</tbody>
</table>
使用以下(仅略微修改)jQuery:
$('input[type="checkbox"]').change(function(){
var self = this,
checked = self.checked,
elClass = self.id;
$('td.' + elClass).find('input[type="checkbox"]').prop('checked',checked);
});
JS 小提琴演示。
参考: