user2187325 user2187325 - 4 months ago 8
jQuery Question

check uncheck All checkboxes with another single checkbox use jquery

I use jquery-1.9.1.js
In my html page, it works well for the first time.

just like

Can somebody help me to improve it?

<table id="tab1">
<input type="checkbox" name="checkAll" id="checkAll">全選
<input type="checkbox" name="book" id="book" value="book1">book1
<input type="checkbox" name="book" id="book" value="book2">book2
<input type="checkbox" name="book" id="book" value="book3">book3
<input type="checkbox" name="book" id="book" value="book4">book4
<input type="checkbox" name="book" id="book" value="book5">book5</table>

$(function () {
$("#tab1 #checkAll").click(function () {
if ($("#tab1 #checkAll").is(':checked')) {
$("#tab1 input[type=checkbox]").each(function () {
$(this).attr("checked", true);

} else {
$("#tab1 input[type=checkbox]").each(function () {
$(this).attr("checked", false);



$(this).attr("checked", true);


$(this).prop("checked", true);

jsFiddle example

I actually just answered another question that was similar to this. Per the .prop() docs:

The .prop() method is a convenient way to set the value of properties—especially when setting multiple properties, using values returned by a function, or setting values on multiple elements at once. It should be used when setting selectedIndex, tagName, nodeName, nodeType, ownerDocument, defaultChecked, or defaultSelected. Since jQuery 1.6, these properties can no longer be set with the .attr() method. They do not have corresponding attributes and are only properties.

Properties generally affect the dynamic state of a DOM element without changing the serialized HTML attribute. Examples include the value property of input elements, the disabled property of inputs and buttons, or the checked property of a checkbox. The .prop() method should be used to set disabled and checked instead of the .attr() method. The .val() method should be used for getting and setting value.