次のコードでは、jQuery を使用しています。
$("input").change(function(evt) {
console.log("change event handler invoked", evt);
console.log($("input").is(':checked'));
console.log($("input").attr("checked"));
console.log($("input").prop("checked"));
});
$("input").trigger("click");
$("input").trigger("click");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<input id="the-input" type="checkbox">
is(':checked')とはprop("checked")両方とも true を表示できますが、`attr("checked") は未定義と表示されます。同じだと思った?(チェックボックスを手動でクリックしても同じ効果です)。
また、checkedチェックボックスがデフォルトでチェックされるようにHTMLで設定すると(http://jsfiddle.net/UcGyM/1/)、両方のトリガーに対してattr("checked")出力されるため、checkedチェックされているかどうか - それはなぜですか? checked(どちらも が表示されますが、$("input").attr("checked", true);or$("input").attr("checked", false);をオンまたはオフにできるのも奇妙です。)
関連する質問は、 を使用することを主張したい場合、それは HTML で属性attr("checked")を持たなければならないということですか? ( or orはデフォルトでオフにしないためです。checked<input type="checkbox" checked>checked="false"checked=""checked="0"