$("input").attr("checked" ,"checked ")
設定後、Chromeのデバッグで確認したところ、確かにチェックボックスにchecked属性があり、値はチェックされていますが、ページがチェックされていません。ディスプレイはまだ選択されていません
$("input" ).prop("checked", true);
特定の状況では、属性とプロパティの違いが重要です。 jQuery 1.6 より前では、.attr() メソッドは特定の属性の値を取得するときにプロパティの値を返すため、一貫性のない結果が発生していました。 jQuery 1.6 以降、.prop() メソッドはプロパティの値を返し、.attr() メソッドは属性の値を返します。
たとえば、selectedIndex、tagName、nodeName、nodeType、ownerDocument、defaultChecked、defaultSelected は、.prop() メソッドを使用して取得または割り当てる必要があります。 jQuery 1.6 より前では、これらの属性は .attr() メソッドを使用して取得されましたが、これは要素の attr 属性ではありませんでした。これらには対応する属性はなく、プロパティのみがあります。
たとえば、HTML タグ
elem.checked true (ブール値) はチェック ボックスのステータスを変更します
$(elem).prop("checked") true (ブール値) はチェック ボックスのステータスを変更します
elem.getAttribute(" selected ") "checked" (文字列) 変更されないチェックボックスの初期状態;
$(elem).attr("checked") (1.6) "checked" (文字列) チェックの初期状態初期状態を変更しないボックス
$(elem).attr("checked") (1.6.1 ) "checked" (String) はチェックボックスの状態を変更します
$(elem).attr( "checked") (1.6 より前) true (ブール値) はチェックボックスの状態を変更します
W3C フォーム仕様によれば、checked 属性はブール属性です。つまり、属性が存在する限り、たとえ値がないか、null 文字列である場合、この属性に対応するプロパティは true です。次の推奨メソッドはブラウザと互換性があり、チェックボックス要素の selected 属性が「true」であるかどうかを判断します:
if ( elem.checked )
if ( $(elem).prop("checked") )
if ( $(elem).is(":checked " ) )
jQuery 1.6 を使用する場合、コード if ( $(elem).attr("checked") ) は属性 (attribute) を取得します。これは、チェックボックスがオンかどうかは変わりません。にチェックが入って選択されています。これは、デフォルトまたは選択されたプロパティの初期値を保存するためにのみ使用されます。下位互換性を維持するために、jQuery 1.6.1 以降の .attr() メソッドは、属性値を返すだけでなく、プロパティ属性も更新するため、.prop() を介して boolean 属性の値を変更する必要はありません。上記のいずれかの方法を使用して、checked の値を取得することをお勧めします。