チェックボックスのチェックを反転させるボタン

$() で取得した checkbox を each で回して属性を設定する、ってだけ。

each が

それぞれのDOM要素に対して,指定した関数を実行します.
DOM要素がthisになって関数が実行されます. jQueryオブジェクトとして扱いたい場合は,$(this)とラッパする必要があります.

jQuery 開発者向けメモ

という仕様とは知らず、ちょっとハマってしまった。


JavaScript

$(function() {
	$("#switch").click(function() {
		$("#main :checkbox").each(function() {
			if($(this).attr("checked") == "") {
				$(this).attr("checked", "checked");
			}
			else {
				$(this).attr("checked", "");
			}
		});
	});
});

HTML(ボタン部分のみ)

<input type="button" value="反転" id="switch" />