ホームページ  >  記事  >  ウェブフロントエンド  >  Jquery attr("checked") は、選択された無効な jquery を取得するために、チェック済みまたは未定義を返します。

Jquery attr("checked") は、選択された無効な jquery を取得するために、チェック済みまたは未定義を返します。

WBOY
WBOYオリジナル
2016-05-16 17:20:30918ブラウズ

次のようなシナリオが必要だとします。ページにチェックボックスがあり、それが Jquery を介して選択されているかどうかを取得するか、Jquery を介して選択されるようにすることを期待しています。
JQ1.6 より前のバージョンでは、次のようにコードを記述します。

コードをコピー コードは次のとおりです。


<script> <br>//選択されているかどうかを取得します<br>var isChecked = $( '#cb' ).attr('checked'); <br><br>//checked を設定します<br>$('#cb').attr('checked',true); <br></script&gt ; <br> </div> <br>JQ1.6 以前はこのように書くことは問題ありませんでしたが、JQ1.6 を上位バージョンにアップグレードすると、次のような問題が発生します。 cb ').attr('checked'); 返されるのは、元の true と false ではなく、チェック済みまたは未定義です。 <br>checked 属性はページの初期化時に初期化されており、ステータスが変化しても変更されません。したがって、最初にチェックボックスが選択されている場合は、checked が返されます。最初にチェックされていない場合は、unknown が返されます。 <br><br><br>解決策は次のとおりです: <strong> </strong><br><div class="codetitle"><span><a style="CURSOR: pointer" data="92279" class="copybut" id="copybut92279" onclick="doCopy('code92279')">コードをコピーします<u></u></a> コードは次のとおりです:</span></div> <div class="codebody" id="code92279"><input type='checkbox' id='cb'/> <br><script> <br>//選択されているかどうかを取得します<br>var isChecked = $(' #cb').prop('checked'); <br>//または <br>var isChecked = $('#cb').is(":checked"); <br>//チェック済みを設定します<br> $('#cb ').prop('checked',true); <br></script>


は次のように理解できます。 > 「属性」と「特性」を区別します。属性は「名前、ID」などを指し、特性は「selectedIndex、tagName、nodeName」などを指します。
JQ1.6 以降では、attr メソッドを通じて属性を取得し、prop メソッドを通じて特性を取得できます。


コードをコピー コードは次のとおりです:
$("#cb").attr("tagName"); //未定義
$("#cb").prop("tagName"); //INPUT

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