Я нуждаюсь в помощи с селекторами jQuery. Скажите, что у меня есть разметка как показано ниже:
<form>
<table>
<tr>
<td><input type="checkbox" id="select_all"/></td>
</tr>
<tr>
<td><input type="checkbox" name="select[]"/></td>
</tr>
<tr>
<td><input type="checkbox" name="select[]"/></td>
</tr>
<tr>
<td><input type="checkbox" name="select[]"/></td>
</tr>
</table>
</form>
Как получить все флажки кроме #select_all
когда пользователь нажимает на него?
Любая справка будет цениться.
Более полный пример, который должен работать в вашем случае :
$('#select_all').change(function() {
var checkboxes = $(this).closest('form').find(':checkbox');
checkboxes.prop('checked', $(this).is(':checked'));
});
При щелчке по флажку #select_all
устанавливается статус флажка, и все флажки в текущей форме устанавливаются в один и тот же статус.
Обратите внимание, что вам не нужно исключать флажок #select_all
из выбора, так как он будет иметь такой же статус, как и все остальные. Если вам по какой-то причине нужно исключить #select_all
, вы можете использовать это:
var checkboxes = $(this).closest('form').find(':checkbox').not($(this));
$("form input[type='checkbox']").attr( "checked" , true );
или вы можете использовать
$("form input:checkbox").attr( "checked" , true );
I have rewritten your HTML and provided a click handler for the main check box
$(function(){
$("#select_all").click( function() {
$("#frm1 input[type='checkbox'].child").attr( "checked", $(this).attr("checked" ) );
});
});
<form id="frm1">
<table>
<tr>
<td>
<input type="checkbox" id="select_all" />
</td>
</tr>
<tr>
<td>
<input type="checkbox" name="select[]" class="child" />
</td>
</tr>
<tr>
<td>
<input type="checkbox" name="select[]" class="child" />
</td>
</tr>
<tr>
<td>
<input type="checkbox" name="select[]" class="child" />
</td>
</tr>
</table>
</form>