Si vous utilisez jQuery 1.6, le code if ($(elem).attr("checked")) obtiendra un attribut qui ne change pas si la case est cochée ou sélectionnée. Il est uniquement utilisé pour stocker la valeur initiale de la propriété par défaut ou sélectionnée. Afin de maintenir la compatibilité ascendante, la méthode .attr() à partir de jQuery 1.6.1 mettra également à jour l'attribut de propriété en plus de renvoyer la valeur de l'attribut, de sorte que l'attribut booléen n'a pas besoin de modifier sa valeur via .prop(). Il est recommandé d'utiliser l'une des méthodes ci-dessus pour obtenir la valeur de vérifié.
Utilisez la méthode attr de jQuery pour obtenir et définir l'attribut "checked" de la case à cocher. Il s'avère que tout sélectionner/désélectionner est efficace pour la première fois, puis il n'est pas valide. Cependant, en regardant le fichier source html. , l'attribut de la case à cocher a bien été Il a été mis à jour, mais la page n'est pas mise à jour La bonne méthode est la suivante :
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.1.min.js"></script><script type="text/javascript">// <![CDATA[ $(function(){ $('.ckAll').click(function(){ $(".box-items").each(function(){ $(this).prop("checked",!!$(".box-all").prop("checked")); }); }); }); // ]]></script> <div><label class="ckAll"><input class="box-all" type="checkbox" /><span>全选</span></label> <input class="box-items" type="checkbox" /> <input class="box-items" type="checkbox" /> <input class="box-items" type="checkbox" /> <input class="box-items" type="checkbox" /> <input class="box-items" type="checkbox" /> </div>