checkbox作全選按鈕

1.先寫一個html頁面,裏面寫一個全選按鈕和幾個複選框,實現下面2個要求javascript

(1)點擊全選按鈕選中時,全部的複選框選中.html

(2)點擊全選按鈕取消選中時,全部複選框取消選中。java

<input type="checkbox" id="quanxuan" />全選<br />
<input type="checkbox" class="qx" />aa<br />
<input type="checkbox" class="qx" />aa<br />
<input type="checkbox" class="qx" />aa<br />
<input type="checkbox" class="qx" />aa<br />
<input type="checkbox" class="qx" />aa<br />

2.js處理代碼this

$("#quanxuan").click(function(){//給全選按鈕加上點擊事件
        var xz = $(this).prop("checked");//判斷全選按鈕的選中狀態
        var ck = $(".qx").prop("checked",xz);  //讓class名爲qx的選項的選中狀態和全選按鈕的選中狀態一致。  
        })

以上代碼徹底能夠完美的實現要求的2個功能。這裏須要注意的是不能使用下面的方法作全選按鈕,由於下面的方法有嚴重的不足之處。spa

1.html頁面code

<input type="checkbox" onclick="quanxuan(this)" />全選<br />
<input type="checkbox" class="qx" />aa<br />
<input type="checkbox" class="qx" />aa<br />
<input type="checkbox" class="qx" />aa<br />
<input type="checkbox" class="qx" />aa<br />
<input type="checkbox" class="qx" />aa<br />

2.處理頁面htm

<script type="text/javascript">
function quanxuan(a)
{
    //找到下面全部的複選框
    var ck =document.getElementsByClassName("qx");
    
    //遍歷全部複選框,設置選中狀態。
    for(var i=0;i<ck.length;i++)
    {
        if(a.checked)//判斷全選按鈕的狀態是否是選中的
        {
            ck[i].setAttribute("checked","checked");//若是是選中的,就讓全部的狀態爲選中。
        }
        else
        {
            ck[i].removeAttribute("checked");//若是不是選中的,就移除全部的狀態是checked的選項。
        }
    }
}
</script>

上面的方法看似也能夠實現全選按鈕的功能,可是執行下列操做步驟後就會出現問題:blog

(1)點擊任意一個複選框,使複選框處於選中狀態;事件

(2)點擊全選按鈕,全部複選框變成了選中狀態;ip

(3)再次點擊全選按鈕,全部按鈕應該取消選中狀態。可是問題出現了,第1步中選中的選中的按鈕仍是處於選中狀態。

這就是第二種全選按鈕方法存在的弊端,因此全選按鈕最好使用第一種,方便而實用。

相關文章
相關標籤/搜索