ホームページ  >  記事  >  ウェブフロントエンド  >  jqueryはチェックボックスを選択状態に設定できない、またはselected_jqueryにならない

jqueryはチェックボックスを選択状態に設定できない、またはselected_jqueryにならない

WBOY
WBOYオリジナル
2016-05-16 16:54:141350ブラウズ
コードをコピー コードは次のとおりです:

$("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 の値を取得することをお勧めします。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。