простое решение:
$('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 Fiddle demo.
Это работает (и easily scalable), если флажок имеет имя-класса одного (в данном случае idleft
) и, что имя-класса, минус id
части, такое же, как имя-класса в td
элементы.
Это, однако, проще использовать id
(а не потенциально должны фильтровать через список потенциальных классов названий, а также избегать метода replace()
), учитывая следующий HTML:
<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 Fiddle demo.
Ссылки:
ID должен быть уникальным ... также, '.live' больше не используется (при условии, что вы используете последнюю версию jQuery) – tymeJV
В чем вопрос? –
'$ (this) .attr ('tr')' ?? Что вы здесь делаете? –