この記事の例では、jQuery に基づいてチェックボックスの選択問題を分析します。参考のために皆さんと共有してください。詳細は次のとおりです。
最近、プロジェクトを開発するときに非常に奇妙な問題に遭遇しました。つまり、チェックボックスをすべて選択するか、何も選択しないかです。
jQuery フレームワークを使用しています。私はいつも
//检测选中的checkbox $('input[name="abc"]:checked').each(function(){})
を使用していましたが、すべてを選択する必要がある場合は、
$('input[name="abc"]').attr('checked',true); $('input[name="abc"]').attr('checked',false);
を再度クリックすると、それ自体が表示されるだけであることがわかりました。しかし、ソースコードを確認すると、checked 属性が追加されていることがわかり、最終的には、それが dom スタイルを変更するのではなく、attr 属性であることがわかりました。 jquery が提供する属性値のみを変更します。代替方法は次のとおりです
$('input[name="abc"]').prop('checked',true); $('input[name="abc"]').prop('checked',false);
ただし、すべてを選択していない場合、どの要素がクリックされたかを検出できず、大騒ぎします。名前
$('input[name="abc[]:checked"').each(function(i){}); //或者 $('input[name="abc[]"').each(function(i){ var flag = $(this).prop('checked'); if(flag){ //$(this) 即为选中元素 } })
問題は解決しました。