最近、プロジェクトで選択/選択解除機能をテストしているときに、親ボックスが初めて選択/選択解除されたときに、サブボックスの全選択/非選択状態が同期されるという問題が発生しました。親ボックスをクリックすると、子ボックスが応答しなくなります。元のコードの一般的な構造は次のとおりです:
'input[name="xxx[]"]').attr("checked"
ステップ1 ポジティブな波動を試してください:
function selectAll(obj){ if(obj.checked) { $('input[name="xxx[]"]').attr("checked", true); } else { $('input[name="xxx[]"]').removeAttr("checked"); } }
Phoenix-----全く効果がないので、放棄してください。
ステップ 2。インターネットで簡単に検索したところ、この問題に遭遇した人の中には比較的よくあることがわかりました。私は何千マイルも離れたところにいるはずです。いくつかをクリックして調べてみると、基本的に attr の代わりに prop を使用すると問題が解決できるとのことですが、解決策は次のとおりです:
ただし、プロジェクトで使用されているバージョンは 1.6 未満でした。バージョンは変えない方が良いと言われたので断念しました。
ステップ3. JQueryを放棄するしかありません... ネイティブjsの記述方法を試してください: コードは次のとおりです:
function selectAll(obj){ var xxx = document.getElementsByName("xxx[]"); if(obj.checked) { for(var i = 0;i < xxx.length;i++) { xxx[i].checked = true; } } else { for(var i = 0;i < xxx.length;i++) { xxx[i].checked = false; } } }
テストしてスムーズに解決します。実際、これは小さな問題ですが、この問題を 1 つの枠に限定することはできず、別の角度から考えると、より適切に問題を解決できることがよくあります。
以上がJQueryの全選択・逆選択が2回目失敗する問題についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。