jQuery實現全選效果


這是一段用jquery實現全選的代碼,主要思路如下:

1.所有的復選框都有單擊事件,所有效果都是在單擊事件下實現的

2.全選復選框所實現的功能與其他復選選項實現的功能不同,所有在單擊事件內做一個判斷,是否是全選復選框的單擊事件

3.如果是,則執行判斷全選復選框是否選中,如果當前狀態為選中,那么點擊后取消勾選,同時取消所有選項的勾選,如果全選當前未選中,點擊后勾選,並勾選所有

4.如果不是,說明點擊的對象是出全選外的其他選項,那么就要判斷當前已經勾選的選項的數量,是否等於除了全選復選框以外所有選項的數量,如果相等,則說明,選項全部勾選,同時將全選復選框也勾選,否則不勾選。

 

下面是我的代碼。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>全選效果</title>
        <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
        <script type="text/javascript">
            $(function(){
                $('input').click(function(){
                    if($(this).index() == 0){
                        //判斷當前全選框是否選中,如果選中則全選,否則全不選
                        if($('input').eq(0).prop('checked')){
                            $(this).nextAll().prop('checked',true);
                        }else{
                            $(this).nextAll().prop('checked',false);
                        }
                    }else{
                        //判斷除了全選之外的選項是否全部選中,選中則勾上全選,否則全不選
                        if($('input:gt(0):checked').length == $('input').length-1){
                            $('input').eq(0).prop('checked',true)
                        }else{
                            $('input').eq(0).prop('checked',false)
                        }
                    }  
                })
            })
        </script>
    </head>
    <body>
        <input type="checkbox" />全選
        <input type="checkbox" />語文
        <input type="checkbox" />數學
        <input type="checkbox" />英語
    </body>
</html>

實現全選效果的思路也比較多,這種思路相對與分開兩個單擊事件的思路來說,稍微有點難理解,但其實實現效果的代碼,是一樣的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM