如何触发检查所有复选框?

The*_*ght 2 javascript checkbox jquery onclick jquery-selectors

我正在试图找出如何触发链接按钮来触发并更改所有复选框以便在单击时进行检查.当我单击按钮时,它将显示警告消息,但不会触发复选框.我已尝试在此网站中列出的一些答案,但它不起作用.我用jsfiddle重新创建了这个问题.

HTML:

<h3><a href="javascript:void(0);" id="checkAll">Check</a> All</h3>
<hr/>
<input class="categories" type="checkbox" name="filter" value="Math" checked>Math<br/>
<input class="categories" type="checkbox" name="filter" value="Science" checked>Science<br/>
<input class="categories" type="checkbox" name="filter" value="Reading" checked>Reading
Run Code Online (Sandbox Code Playgroud)

JS:

$('#checkAll').click(function()
{
  alert("checkAll was clicked!");
  console.log("Checkboxes has been refilled!");
  $(':checkbox.categories').prop('checked', $(this).checked); // re-check all checkboxes
  //$("input:checkbox").prop('checked', $(this).prop("checked"));
});
Run Code Online (Sandbox Code Playgroud)

Ror*_*san 6

问题是因为this将引用a元素并且包含该元素的jQuery对象没有checked属性.相反,只需将其设置为true:

$('#checkAll').click(function(e) {
  e.preventDefault();
  $(':checkbox.categories').prop('checked', true);
});
Run Code Online (Sandbox Code Playgroud)

更新了小提琴