次のようなシナリオが必要だとします。ページにチェックボックスがあり、それが Jquery を介して選択されているかどうかを取得するか、Jquery を介して選択されるようにすることを期待しています。
JQ1.6 より前のバージョンでは、次のようにコードを記述します。
<script> <br>//選択されているかどうかを取得します<br>var isChecked = $( '#cb' ).attr('checked'); <br><br>//checked を設定します<br>$('#cb').attr('checked',true); <br></script> ; <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