Как реализовать флажок «выбрать все» в HTML?

218

У меня есть HTML-страница с несколькими флажками.

Мне нужен еще один флажок с именем «выбрать все». Когда я выбираю этот флажок, все флажки на странице HTML должны быть установлены. Как я могу это сделать?

user48094
источник
1
Если вы хотите изящно ухудшить качество, выбор «выбрать все» должен фактически означать, что все выбраны независимо от их индивидуального состояния. (посещение вашей страницы с отключенным JavaScript)
около
В Firefox (а может и других?): Нажмите, CTRL+SHIFT+Kчтобы открыть консоль, затем вставьте : $("input:checkbox").attr('checked', true)и нажмите Enter. Все флажки на текущей странице должны быть отмечены. Чтобы отменить изменение Trueв False.
ashleedawg

Ответы:

308
<script language="JavaScript">
function toggle(source) {
  checkboxes = document.getElementsByName('foo');
  for(var checkbox in checkboxes)
    checkbox.checked = source.checked;
}
</script>

<input type="checkbox" onClick="toggle(this)" /> Toggle All<br/>

<input type="checkbox" name="foo" value="bar1"> Bar 1<br/>
<input type="checkbox" name="foo" value="bar2"> Bar 2<br/>
<input type="checkbox" name="foo" value="bar3"> Bar 3<br/>
<input type="checkbox" name="foo" value="bar4"> Bar 4<br/>

ОБНОВИТЬ:

for each...inКонструкция не кажется на работу, по крайней мере , в этом случае, в Safari 5 или Chrome 5. Этот код должен работать во всех браузерах:

function toggle(source) {
  checkboxes = document.getElementsByName('foo');
  for(var i=0, n=checkboxes.length;i<n;i++) {
    checkboxes[i].checked = source.checked;
  }
}
Can Berk Güder
источник
1
для каждого (флажок var в флажках) --------------------------------------- должен: для (var checkbox в checkboxes)
HelloWorld
@HelloWorld: для каждого ... in действительно допустимо Javascript: developer.mozilla.org/en/Core_JavaScript_1.5_Reference/… Но, как указала porneL, это неясная конструкция. Кроме того, этот код не работает в Safari 5 или Chrome 5. Он работает в FF 3.6 и IIRC, он работал в Safari 4. for(var i in checkboxes) checkboxes[i].checked = source.checkedРаботает во всех браузерах.
Может Берк Гудер
3
Никогда не используйте for inс коллекцией или массивом
mplungjan
1
Почему вы делаете, , n=checkboxes.length;i<nа не просто i < checkboxes.length? В любом случае, чтобы сделать функцию универсальной (повторное использование кода), передайте дополнительный параметр: (source, checkboxes_name)and do document.getElementsByName(checkboxes_name);Это лучше, чем жестко кодировать имя и делать функцию специфичной для определенного набора флажков.
ADTC
3
Хорошо, так как мое редактирование было отклонено по какой-то причине, я думаю, я прокомментирую здесь. Конструкция для каждого устарела и не будет работать! Вы должны использовать его замену for(let checkbox of checkboxes).
Форрестхопкинса
126

Используя jQuery :

// Listen for click on toggle checkbox
$('#select-all').click(function(event) {   
    if(this.checked) {
        // Iterate each checkbox
        $(':checkbox').each(function() {
            this.checked = true;                        
        });
    } else {
        $(':checkbox').each(function() {
            this.checked = false;                       
        });
    }
});

HTML:

<input type="checkbox" name="checkbox-1" id="checkbox-1" />
<input type="checkbox" name="checkbox-2" id="checkbox-2" />
<input type="checkbox" name="checkbox-3" id="checkbox-3" />

<!-- select all boxes -->
<input type="checkbox" name="select-all" id="select-all" />
davydepauw
источник
24
я бы добавил предложение else для обработки сценария отмены выбора, ;-) .. else {// Итерация каждого флажка $ (": checkbox"). each (function () {this.checked = false;}); }
изумруджава
4
Если вы хотите опустить операторы if и else и по-прежнему обрабатывать отмену выбора, вы можете сделать это следующим образом: var state = this.checked; $ (': checkbox'). each (function () {this.checked = state;});
Ассил
85

Я не уверен, что никто не ответил таким образом (используя jQuery ):

  $( '#container .toggle-button' ).click( function () {
    $( '#container input[type="checkbox"]' ).prop('checked', this.checked)
  })

Он чистый, не имеет циклов или выражений if / else и работает как шарм.

fiatjaf
источник
4
Всего три строки, просто => легко понять и работает для отмены выбора. Спасибо.
TeeJay
61

Чтобы отменить выбор:

$('#select_all').click(function(event) {
  if(this.checked) {
      // Iterate each checkbox
      $(':checkbox').each(function() {
          this.checked = true;
      });
  }
  else {
    $(':checkbox').each(function() {
          this.checked = false;
      });
  }
});
Var
источник
2
если и еще не нужно ... просто используйте this.checkedвместо этого
m13r
46

Я удивлен, что никто не упомянул document.querySelectorAll(). Чистое решение JavaScript, работает в IE9 +.

function toggle(source) {
    var checkboxes = document.querySelectorAll('input[type="checkbox"]');
    for (var i = 0; i < checkboxes.length; i++) {
        if (checkboxes[i] != source)
            checkboxes[i].checked = source.checked;
    }
}
<input type="checkbox" onclick="toggle(this);" />Check all?<br />

<input type="checkbox" />Bar 1<br />
<input type="checkbox" />Bar 2<br />
<input type="checkbox" />Bar 3<br />
<input type="checkbox" />Bar 4<br />

Sumit
источник
1
это работало в Chrome, но у меня было много флажков по разным причинам, поэтому вместо таргетинга 'type = "checkbox"' я выбрал "name =" myobject "', и это также сработало.
Rich701
Может быть, это следует изменить на новый правильный ответ, если не было бы полезно какое-то обсуждение. :-)
Джесси Стил
Этот ответ было намного легче внедрить в существующие страницы, чем другие ответы. хорошая работа.
TS
16

Демо http://jsfiddle.net/H37cb/

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js" /></script>

<script type="text/javascript">
$(document).ready(function(){

$('input[name="all"],input[name="title"]').bind('click', function(){
var status = $(this).is(':checked');
$('input[type="checkbox"]', $(this).parent('li')).attr('checked', status);
});

});
</script>




<div id="wrapper">
 <li style="margin-top: 20px">
  <input type="checkbox" name="all" id="all" /> <label for='all'>All</label>
  <ul>
   <li><input type="checkbox" name="title" id="title_1" /> <label for="title_1"><strong>Title 01</strong></label>
    <ul>
     <li><input type="checkbox" name="selected[]" id="box_1" value="1" /> <label for="box_1">Sub Title 01</label></li>
     <li><input type="checkbox" name="selected[]" id="box_2" value="2" /> <label for="box_2">Sub Title 02</label></li>
     <li><input type="checkbox" name="selected[]" id="box_3" value="3" /> <label for="box_3">Sub Title 03</label></li>
     <li><input type="checkbox" name="selected[]" id="box_4" value="4" /> <label for="box_4">Sub Title 04</label></li>
    </ul>
   </li>
  </ul>
  <ul>
   <li><input type="checkbox" name="title" id="title_2" /> <label for="title_2"><strong>Title 02</strong></label>
    <ul>
     <li><input type="checkbox" name="selected[]" id="box_5" value="5" /> <label for="box_5">Sub Title 05</label></li>
     <li><input type="checkbox" name="selected[]" id="box_6" value="6" /> <label for="box_6">Sub Title 06</label></li>
     <li><input type="checkbox" name="selected[]" id="box_7" value="7" /> <label for="box_7">Sub Title 07</label></li>
    </ul>
   </li>
  </ul>
 </li>
</div>
merakli
источник
1
Для меня это работает только для одного цикла. Он переключается только один раз, тогда он ничего не делает.
Mrudult
Так что это attr()метод, я думаю. изменил это наprop()
Mrudult
Что ж, если я отменил выбор какого-либо элемента из списка, не должен быть снят флажок «Выбрать все»?
some_other_guy
10

Слегка измененная версия, которая уважительно проверяет и снимает галочки

$('#select-all').click(function(event) {
        var $that = $(this);
        $(':checkbox').each(function() {
            this.checked = $that.is(':checked');
        });
    });
p0rsche
источник
10

Когда вы позвоните document.getElementsByName("name"), вы получите Object. Используйте, .item(index)чтобы пройти все предметыObject

HTML:

<input type="checkbox" onclick="for(c in document.getElementsByName('rfile')) document.getElementsByName('rfile').item(c).checked = this.checked">

<input type=​"checkbox" name=​"rfile" value=​"/​cgi-bin/​"><input type=​"checkbox" name=​"rfile" value=​"/​includes/​"><input type=​"checkbox" name=​"rfile" value=​"/​misc/​"><input type=​"checkbox" name=​"rfile" value=​"/​modules/​"><input type=​"checkbox" name=​"rfile" value=​"/​profiles/​"><input type=​"checkbox" name=​"rfile" value=​"/​scripts/​"><input type=​"checkbox" name=​"rfile" value=​"/​sites/​"><input type=​"checkbox" name=​"rfile" value=​"/​stats/​"><input type=​"checkbox" name=​"rfile" value=​"/​themes/​">
Чен Ян
источник
9
<html>

<head>
<script type="text/javascript">

    function do_this(){

        var checkboxes = document.getElementsByName('approve[]');
        var button = document.getElementById('toggle');

        if(button.value == 'select'){
            for (var i in checkboxes){
                checkboxes[i].checked = 'FALSE';
            }
            button.value = 'deselect'
        }else{
            for (var i in checkboxes){
                checkboxes[i].checked = '';
            }
            button.value = 'select';
        }
    }
</script>
</head>

<body>
<input type="checkbox" name="approve[]" value="1" />
<input type="checkbox" name="approve[]" value="2" />
<input type="checkbox" name="approve[]" value="3" />

<input type="button" id="toggle" value="select" onClick="do_this()" />
</body>

</html>
KarenAnne
источник
9

Мое простое решение позволяет выборочно выбирать / отменять выбор всех флажков в заданной части формы , используя разные имена для каждого флажка, чтобы их можно было легко распознать после отправки формы.

Javascript:

function setAllCheckboxes(divId, sourceCheckbox) {
    divElement = document.getElementById(divId);
    inputElements = divElement.getElementsByTagName('input');
    for (i = 0; i < inputElements.length; i++) {
        if (inputElements[i].type != 'checkbox')
            continue;
        inputElements[i].checked = sourceCheckbox.checked;
    }
}

Пример HTML:

<p><input onClick="setAllCheckboxes('actors', this);" type="checkbox" />All of them</p>
<div id="actors">
    <p><input type="checkbox" name="kevin" />Spacey, Kevin</p>
    <p><input type="checkbox" name="colin" />Firth, Colin</p>
    <p><input type="checkbox" name="scarlett" />Johansson, Scarlett</p>
</div>

Я надеюсь тебе это понравится!

Джорджио Барчиези
источник
9

Попробуйте этот простой JQuery:

$('#select-all').click(function(event) {
  if (this.checked) {
    $(':checkbox').prop('checked', true);
  } else {
    $(':checkbox').prop('checked', false);
  }
});
Дивьянк Сабхайя
источник
1
Вы можете упростить это до $(':checkbox').prop('checked', this.checked), без необходимости условного.
Sumit
7

JavaScript - ваш лучший выбор. Ссылка ниже дает пример использования кнопок для отмены / выбора всего. Вы можете попытаться адаптировать его для использования флажка, просто используйте атрибут «выбрать все» флажок onClick.

Функция Javascript для проверки или снятия всех флажков

Эта страница имеет более простой пример

http://www.htmlcodetutorial.com/forms/_INPUT_onClick.html

Cogsy
источник
7

Этот пример работает с нативным JavaScript, где имя переменной флажка меняется, то есть не все "foo".

<!DOCTYPE html>
<html>
<body>

<p>Toggling checkboxes</p>
<script>
function getcheckboxes() {
    var node_list = document.getElementsByTagName('input');
    var checkboxes = [];
    for (var i = 0; i < node_list.length; i++) 
    {
        var node = node_list[i];
        if (node.getAttribute('type') == 'checkbox') 
    {
            checkboxes.push(node);
        }
    } 
    return checkboxes;
}
function toggle(source) {
  checkboxes = getcheckboxes();
  for(var i=0, n=checkboxes.length;i<n;i++) 
  {
    checkboxes[i].checked = source.checked;
  }
}
</script>


<input type="checkbox" name="foo1" value="bar1"> Bar 1<br/>
<input type="checkbox" name="foo2" value="bar2"> Bar 2<br/>
<input type="checkbox" name="foo3" value="bar3"> Bar 3<br/>
<input type="checkbox" name="foo4" value="bar4"> Bar 4<br/>

<input type="checkbox" onClick="toggle(this)" /> Toggle All<br/>

</body>
</html>
Джозеф Саад
источник
2
ваша getcheckboxesфункция может быть заменена наdocument.querySelectorAll('input[type=checkbox]');
Kaiido
4
<asp:CheckBox ID="CheckBox1" runat="server" Text="Select All" onclick="checkAll(this);" />
<br />
<asp:CheckBoxList ID="CheckBoxList1" runat="server">
    <asp:ListItem Value="Item 1">Item 1</asp:ListItem>
    <asp:ListItem Value="Item 2">Item 2</asp:ListItem>
    <asp:ListItem Value="Item 3">Item 3</asp:ListItem>
    <asp:ListItem Value="Item 4">Item 4</asp:ListItem>
    <asp:ListItem Value="Item 5">Item 5</asp:ListItem>
    <asp:ListItem Value="Item 6">Item 6</asp:ListItem>
</asp:CheckBoxList>

<script type="text/javascript">
    function checkAll(obj1) {
        var checkboxCollection = document.getElementById('<%=CheckBoxList1.ClientID %>').getElementsByTagName('input');

        for (var i = 0; i < checkboxCollection.length; i++) {
            if (checkboxCollection[i].type.toString().toLowerCase() == "checkbox") {
                checkboxCollection[i].checked = obj1.checked;
            }
        }
    }
</script>
Чарльз
источник
3

что должно сделать работу

    $(':checkbox').each(function() {
        this.checked = true;                        
    });
Рашид О
источник
2
$(document).ready(function() {
                $(document).on(' change', 'input[name="check_all"]', function() {
                    $('.cb').prop("checked", this.checked);
                });
            });
xrcwrn
источник
2

Использование jQuery и нокаут:

Если этот основной флажок привязки остается синхронизированным с лежащими в основе флажками, он будет снят, если не установлены все флажки.

ko.bindingHandlers.allChecked = {
  init: function (element, valueAccessor) {
    var selector = valueAccessor();

    function getChecked () {
      element.checked = $(selector).toArray().every(function (checkbox) {
        return checkbox.checked;
      });
    }

    function setChecked (value) {
      $(selector).toArray().forEach(function (checkbox) {
        if (checkbox.checked !== value) {
          checkbox.click();
        }
      });
    }

    ko.utils.registerEventHandler(element, 'click', function (event) {
      setChecked(event.target.checked);
    });

    $(window.document).on('change', selector, getChecked);

    ko.utils.domNodeDisposal.addDisposeCallback(element, () => {
      $(window.document).off('change', selector, getChecked);
    });

    getChecked();
  }
};

в формате HTML:

<input id="check-all-values" type="checkbox" data-bind="allChecked: '.checkValue'"/>
<input id="check-1" type="checkbox" class="checkValue"/>
<input id="check-2" type="checkbox" class="checkValue"/>
blazkovicz
источник
Я не знаю достаточно о нокауте (я использую ko3.4 с cdnjs.cloudflare.com, но вышеприведенное, похоже, не работает - вообще. Я могу установить точку останова при первоначальном вызове init: call, который срабатывает при загрузке страницы (что, я полагаю, правильно), но вход в это ничего не дает - ни одна из остальных функций не выполняется. Установка точек останова для других функций, и они никогда не срабатывают.
Тони Саффолк 66
Тони Саффолк, там установлены два обработчика событий: onclick и onchange для флажка, и значение флажка обновляется в конце кода. Если этот код не работает в вашем проекте, установите флажок для атрибута привязки данных.
Blazkovicz
2

Вы можете иметь разные наборы флажков в одной форме . Вот решение, которое выбирает / снимает флажки по имени класса, используя ванильную функцию javascript document.getElementsByClassName

Кнопка Выбрать все

<input type='checkbox' id='select_all_invoices' onclick="selectAll()"> Select All

Некоторые из флажков, чтобы выбрать

<input type='checkbox' class='check_invoice' id='check_123' name='check_123' value='321' />
<input type='checkbox' class='check_invoice' id='check_456' name='check_456' value='852' />

JavaScript

    function selectAll() {
        var blnChecked = document.getElementById("select_all_invoices").checked;
        var check_invoices = document.getElementsByClassName("check_invoice");
        var intLength = check_invoices.length;
        for(var i = 0; i < intLength; i++) {
            var check_invoice = check_invoices[i];
            check_invoice.checked = blnChecked;
        }
    }
Николас Гишпенц
источник
1
Это работает. Пожалуйста, проверьте codepen.io/kustomweb/pen/gZqwLV
Николас Гишпенц
2

Это то, что это будет делать, например, если у вас есть 5 флажков, и вы нажимаете флажок «все», он проверяет все, теперь, если вы снимите все флажки, вероятно, нажав каждые 5 флажков, к тому времени, когда вы снимите последний флажок, выберите все флажки также не отмечены

$("#select-all").change(function(){
   $(".allcheckbox").prop("checked", $(this).prop("checked"))
  })
  $(".allcheckbox").change(function(){
      if($(this).prop("checked") == false){
          $("#select-all").prop("checked", false)
      }
      if($(".allcheckbox:checked").length == $(".allcheckbox").length){
          $("#select-all").prop("checked", true)
      }
  })
samezedi
источник
2

Поскольку я не могу комментировать, здесь как ответ: я бы написал решение Can Berk Güder в более общем виде, так что вы можете использовать эту функцию для других флажков

<script language="JavaScript">
  function toggleCheckboxes(source, cbName) {
    checkboxes = document.getElementsByName(cbName);
    for (var i = 0, n = checkboxes.length; i < n; i++) {
      checkboxes[i].checked = source.checked;
    }
  }
</script>
<input type="checkbox" onClick="toggleCheckboxes(this,\'foo\')" /> Toggle All<br/>

<input type="checkbox" name="foo" value="bar1"> Bar 1<br/>
<input type="checkbox" name="foo" value="bar2"> Bar 2<br/>
<input type="checkbox" name="foo" value="bar3"> Bar 3<br/>
<input type="checkbox" name="foo" value="bar4"> Bar 4<br/>
<input type="checkbox" name="foo" value="bar5"> Bar 5<br/>
user219901
источник
Спасибо Халди и Кларити за указание на отсутствующую скобку!
user219901
2

Если вы принимаете верхний ответ для jquery, помните, что объект, переданный функции click, является EventHandler, а не исходным объектом флажка. Поэтому код должен быть изменен следующим образом.

Html

<input type="checkbox" name="selectThemAll"/> Toggle All<br/>

<input type="checkbox" name="foo" value="bar1"> Bar 1<br/>
<input type="checkbox" name="foo" value="bar2"> Bar 2<br/>
<input type="checkbox" name="foo" value="bar3"> Bar 3<br/>
<input type="checkbox" name="foo" value="bar4"> Bar 4<br/>

Javascript

$(function() {
    jQuery("[name=selectThemAll]").click(function(source) { 
        checkboxes = jQuery("[name=foo]");
        for(var i in checkboxes){
            checkboxes[i].checked = source.target.checked;
        }
    });
})
khylo
источник
не только неправильный первый тип ввода, но даже после его исправления это не сработало для меня
Сообщения об ошибках
1

Вот реализация backbone.js:

events: {
    "click #toggleChecked" : "toggleChecked"
},
toggleChecked: function(event) {

    var checkboxes = document.getElementsByName('options');
    for(var i=0; i<checkboxes.length; i++) {
        checkboxes[i].checked = event.currentTarget.checked;
    }

},
Нули-и-оны
источник
1

HTML

<input class='all' type='checkbox'> All
<input class='item' type='checkbox' value='1'> 1
<input class='item' type='checkbox' value='2'> 2
<input class='item' type='checkbox' value='3'> 3

Javascript

$(':checkbox.all').change(function(){
  $(':checkbox.item').prop('checked', this.checked);
});
diewland
источник
1

1: добавить обработчик события onchange

<th><INPUT type="checkbox" onchange="checkAll(this)" name="chk[]" /> </th>

2: изменить код для обработки отмеченных / непроверенных

 function checkAll(ele) {
     var checkboxes = document.getElementsByTagName('input');
     if (ele.checked) {
         for (var i = 0; i < checkboxes.length; i++) {
             if (checkboxes[i].type == 'checkbox') {
                 checkboxes[i].checked = true;
             }
         }
     } else {
         for (var i = 0; i < checkboxes.length; i++) {
             console.log(i)
             if (checkboxes[i].type == 'checkbox') {
                 checkboxes[i].checked = false;
             }
         }
     }
 }
Судхир Вишвакарма
источник
Пожалуйста, не копируйте код вставки, вместо этого используйте ссылку stackoverflow.com/questions/19282219/…
java_dude
1

Приведенные ниже методы очень просты для понимания, и вы можете реализовать существующие формы за считанные минуты

С Jquery,

$(document).ready(function() {
  $('#check-all').click(function(){
    $("input:checkbox").attr('checked', true);
  });
  $('#uncheck-all').click(function(){
    $("input:checkbox").attr('checked', false);
  });
});

в HTML-форме поставить кнопки ниже

<a id="check-all" href="javascript:void(0);">check all</a>
<a id="uncheck-all" href="javascript:void(0);">uncheck all</a> 

С помощью только JavaScript,

<script type="text/javascript">
function checkAll(formname, checktoggle)
{
  var checkboxes = new Array(); 
  checkboxes = document[formname].getElementsByTagName('input');

  for (var i=0; i<checkboxes.length; i++)  {
    if (checkboxes[i].type == 'checkbox')   {
      checkboxes[i].checked = checktoggle;
    }
  }
}
</script>

в HTML-форме поставить кнопки ниже

<button onclick="javascript:checkAll('form3', true);" href="javascript:void();">check all</button>

<button onclick="javascript:checkAll('form3', false);" href="javascript:void();">uncheck all</button>
dipenparmar12
источник
0

Вы можете использовать этот простой код

$('.checkall').click(function(){
    var checked = $(this).prop('checked');
    $('.checkme').prop('checked', checked);
});
Saengdaet
источник
0

сделать это в сокращенной версии с помощью jQuery

Флажок выбрать все

<input type="checkbox" id="chkSelectAll">

Флажок детей

<input type="checkbox" class="chkDel">
<input type="checkbox" class="chkDel">
<input type="checkbox" class="chkDel">

JQuery

$("#chkSelectAll").on('click', function(){
     this.checked ? $(".chkDel").prop("checked",true) : $(".chkDel").prop("checked",false);  
})
Сомванг Соуксаватд
источник
0

Может быть, немного поздно, но при работе с флажком check all, я полагаю, вам следует также обработать сценарий, когда у вас установлен флажок check all, а затем снять один из флажков ниже.

В этом случае он должен автоматически снять флажок check all.

Кроме того, при ручной проверке всех флажков, вы должны в конечном итоге установить флажок флажок все автоматически.

Вам нужны два обработчика событий, один для флажка «все» и один для щелчка по любому из отдельных полей ниже.

// HANDLES THE INDIVIDUAL CHECKBOX CLICKS
function client_onclick() {
    var selectAllChecked = $("#chk-clients-all").prop("checked");

    // IF CHECK ALL IS CHECKED, AND YOU'RE UNCHECKING AN INDIVIDUAL BOX, JUST UNCHECK THE CHECK ALL CHECKBOX.
    if (selectAllChecked && $(this).prop("checked") == false) {
        $("#chk-clients-all").prop("checked", false);
    } else { // OTHERWISE WE NEED TO LOOP THROUGH INDIVIDUAL CHECKBOXES AND SEE IF THEY ARE ALL CHECKED, THEN CHECK THE SELECT ALL CHECKBOX ACCORDINGLY.
        var allChecked = true;
        $(".client").each(function () {
            allChecked = $(this).prop("checked");
            if (!allChecked) {
                return false;
            }
        });
        $("#chk-clients-all").prop("checked", allChecked);
    }
}

// HANDLES THE TOP CHECK ALL CHECKBOX
function client_all_onclick() {
    $(".client").prop("checked", $(this).prop("checked"));
}
Альберт
источник
-2

Просто и на ТОЧКУ:

jQuery - после нажатия кнопки, элемента div или элемента label. Отметьте все флажки на странице. Имейте в виду, что вам придется настроить флажок, чтобы сделать его более конкретным.

jQuery("#My-Button").click(function() {

  jQuery(':checkbox').each(function() {
    if(this.checked == true) {
      this.checked = false;                        
    } else {
      this.checked = true;                        
    }      
  });

});
Патоши パ ト シ
источник