jquery .attr エラーの解決策: 1. HTML サンプル ファイルを作成します; 2. jquery を介してチェックボックスを操作します; 3. attr を prop に置き換えます。
この記事の動作環境: Windows7 システム、jquery バージョン 1.2.6、DELL G3 コンピューター
内容jquery .attr の管理に失敗した場合はどうすればよいですか?
jquery attr を複数回使用すると失敗する問題の解決策
今日、全選択関数を作成するときに、jq の attr メソッドを使用しましたが、実際に使ってみたところ 初めて全選択・全選択解除の機能が実現できましたが、何回かクリックするとチェックの効果が消えてしまいます!
まずコードを見てみましょう:
<!DOCTYPE html> <html> <head > <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>jquery操作checkbox方法</title> <script type="text/javascript" src="js/jquery-1.11.0.min.js"></script> <script type="text/javascript" > //全选 function selectAll() { //方法一: $("input[name='bjjb']").attr("checked",true); //方法二: /**$("input[name='bjjb']").each(function(){ $(this).attr("checked",true); });*/ //获得checkbox的值和文本 $("#checked").html(""); $("#checkedText").html(""); $("input[name='bjjb']:checked").each(function () { $("#checked").append($(this).val()+","); //注意文本一定要元素标签如span否则next得不到值 $("#checkedText").append($(this).next().text()+","); }); } //取消全选 function selectNone(){ //方法一: $("input[name='bjjb']").removeAttr("checked"); //方法二: /*$("input[name='bjjb']").each(function(){ $(this).attr("checked",false); });*/ //获得checkbox的值和文本 $("#checked").html(""); $("#checkedText").html(""); $("input[name='bjjb']:checked").each(function () { $("#checked").append($(this).val()+","); //注意文本一定要元素标签如span否则next得不到值 $("#checkedText").append($(this).next().text()+","); }); } //反选 function selectInvert() { $("input[name='bjjb']").each(function(index,item){ if ($(this).attr("checked")) { $(this).removeAttr("checked"); } else { $(this).attr("checked", true); } }); } </script> </head> <body> <form id="" action="" method="post"> <div > <input type="checkbox" name="bjjb" value="1"/><span>選項一</span></br> <input type="checkbox" name="bjjb" value="2"/><span>選項二</span></br> <input type="checkbox" name="bjjb" value="3"/><span>選項三</span></br> <input type="checkbox" name="bjjb" value="4"/><span>選項四</span></br> <input type="checkbox" name="bjjb" value="5"/><span>選項五</span></br> </div> <div style="margin-top:10px;"> <input type="button" onclick="selectAll()" value="全选" /> <input type="button" onclick="selectNone()" value="全不选" /> <input type="button" onclick="selectInvert()" value="反选" /> </div> <div style="margin-top:10px;"> 选中项:<div id="checked"></div> 选中文本:<div id="checkedText"></div> </div> </form> </body> </html>
実行時の効果:
初回 (クリックしてすべて選択):
2 回目 (クリックしてすべて選択):
3 回目 (もう一度クリックしてすべて選択):
クリックしてもチェックマークがつきません。確かに問題があります。
多くの検証の後、フォーラム マスターは次のように言いました:
それが HTML 自体の属性である場合は、prop メソッドを使用するのが最善です
jquery 1.8 ドキュメントを確認した後、同じ例を与えるときに prop メソッドも使用しました:
では、上記を変更するにはどうすればよいですか?
これは非常に簡単です:
attr を prop に置き換えるだけです。行って試してみてください! !
推奨される学習: 「
jquery ビデオ チュートリアル」
以上がjquery .attr が失敗した場合の対処方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。