<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>全選練習</title>
<script type="text/javascript">
window.onload = function(){
//獲取四個多選框items
var items = document.getElementsByName("items");
//獲取全選/全不選的多選框
var checkedAllBox = document.getElementById("checkedAllBox");
/*
* 全選按鈕
* - 點擊按鈕以後,四個多選框全都被選中
*/
//1.#checkedAllBtn
//爲id爲checkedAllBtn的按鈕綁定一個單擊響應函數
var checkedAllBtn = document.getElementById("checkedAllBtn");
checkedAllBtn.onclick = function(){
//遍歷items
for(var i=0 ; i<items.length ; i++){
//通過多選框的checked屬性可以來獲取或設置多選框的選中狀態
//alert(items[i].checked);
//設置四個多選框變成選中狀態
items[i].checked = true;
}
//將全選/全不選設置爲選中
checkedAllBox.checked = true;
};
/*
* 全不選按鈕
* - 點擊按鈕以後,四個多選框都變成沒選中的狀態
*/
//2.#checkedNoBtn
//爲id爲checkedNoBtn的按鈕綁定一個單擊響應函數
var checkedNoBtn = document.getElementById("checkedNoBtn");
checkedNoBtn.onclick = function(){
for(var i=0; i<items.length ; i++){
//將四個多選框設置爲沒選中的狀態
items[i].checked = false;
}
//將全選/全不選設置爲不選中
checkedAllBox.checked = false;
};
/*
* 反選按鈕
* - 點擊按鈕以後,選中的變成沒選中,沒選中的變成選中
*/
//3.#checkedRevBtn
var checkedRevBtn = document.getElementById("checkedRevBtn");
checkedRevBtn.onclick = function(){
//將checkedAllBox設置爲選中狀態
checkedAllBox.checked = true;
for(var i=0; i<items.length ; i++){
//判斷多選框狀態
/*if(items[i].checked){
//證明多選框已選中,則設置爲沒選中狀態
items[i].checked = false;
}else{
//證明多選框沒選中,則設置爲選中狀態
items[i].checked = true;
}*/
items[i].checked = !items[i].checked;
//判斷四個多選框是否全選
//只要有一個沒選中則就不是全選
if(!items[i].checked){
//一旦進入判斷,則證明不是全選狀態
//將checkedAllBox設置爲沒選中狀態
checkedAllBox.checked = false;
}
}
//在反選時也需要判斷四個多選框是否全都選中
};
/*
* 提交按鈕:
* - 點擊按鈕以後,將所有選中的多選框的value屬性值彈出
*/
//4.#sendBtn
//爲sendBtn綁定單擊響應函數
var sendBtn = document.getElementById("sendBtn");
sendBtn.onclick = function(){
//遍歷items
for(var i=0 ; i<items.length ; i++){
//判斷多選框是否選中
if(items[i].checked){
alert(items[i].value);
}
}
};
//5.#checkedAllBox
/*
* 全選/全不選 多選框
* - 當它選中時,其餘的也選中,當它取消時其餘的也取消
*
* 在事件的響應函數中,響應函數是給誰綁定的this就是誰
*/
//爲checkedAllBox綁定單擊響應函數
checkedAllBox.onclick = function(){
//alert(this === checkedAllBox);
//設置多選框的選中狀態
for(var i=0; i <items.length ; i++){
items[i].checked = this.checked;
}
};
//6.items
/*
* 如果四個多選框全都選中,則checkedAllBox也應該選中
* 如果四個多選框沒都選中,則checkedAllBox也不應該選中
*/
//爲四個多選框分別綁定點擊響應函數
for(var i=0 ; i<items.length ; i++){
items[i].onclick = function(){
//將checkedAllBox設置爲選中狀態
checkedAllBox.checked = true;
for(var j=0 ; j<items.length ; j++){
//判斷四個多選框是否全選
//只要有一個沒選中則就不是全選
if(!items[j].checked){
//一旦進入判斷,則證明不是全選狀態
//將checkedAllBox設置爲沒選中狀態
checkedAllBox.checked = false;
//一旦進入判斷,則已經得出結果,不用再繼續執行循環
break;
}
}
};
}
};
</script>
</head>
<body>
<form method="post" action="">
你愛好的運動是?<input type="checkbox" id="checkedAllBox" />全選/全不選
<br />
<input type="checkbox" name="items" value="足球" />足球
<input type="checkbox" name="items" value="籃球" />籃球
<input type="checkbox" name="items" value="羽毛球" />羽毛球
<input type="checkbox" name="items" value="乒乓球" />乒乓球
<br />
<input type="button" id="checkedAllBtn" value="全 選" />
<input type="button" id="checkedNoBtn" value="全不選" />
<input type="button" id="checkedRevBtn" value="反 選" />
<input type="button" id="sendBtn" value="提 交" />
</form>
</body>
</html>
js--打卡--12.13 DOM全選練習
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.