題目一:
JavaScript 復選框全選和全不選
<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<style type="text/css">
body{font-size:12px;}
ul{list-style:none}
</style>
<script type="text/javascript">
window.onload=function(){var box=document.getElementById("box");var flag=document.getElementById("flag");var checkAll=document.getElementById("checkAll");checks=box.getElementsByTagName("input");checkAll.onclick=function(){if(this.checked){for(var i=0;i<checks.length;i++){checks[i].checked=true;}flag.innerHTML="取消";}else{for(var i=0;i<checks.length;i++){checks[i].checked = false;}flag.innerHTML="全選";}}
}
</script>
</head>
<body >
<ul id="box"><li><input type="checkbox">樣例一</li><li><input type="checkbox">樣例二</li><li><input type="checkbox">樣例三</li><li><input type="checkbox">樣例四</li>
</ul>
<input type="checkbox" id="checkAll"><span id="flag">全選</span>
</body>
</html>
分析:當點擊底部復選框的時候,首先判斷此復選框是否被選中,如果被選中,說明要全選。
然后使用for循環遍歷整個復選框,將復選框設置為選中狀態,并且將span中的文本設置為取消,取消全選同樣道理。
題目二:
JavaScript 拼接多個數組并刪除重復元素
var a=["antzone","螞蟻部落","市南區"],
b=["新銳科技","螞蟻部落","努力奮斗"],
c=[2,"新銳科技","js教程"],
_a=a.concat(b).concat(c), //使用concat方法將幾個數組連接在一起,然后再刪除新數組中重復的元素。
_hash={}, //聲明一個對象,此對象會以數組的元素作為屬性。
_new=[]; //聲明一個新數組,用來存儲刪除重復后的元素。
for(var i=_a.length;i--;){ if(!_hash[_a]){ //判斷對象中是否含所有此屬性。_hash[_a]=1; //如果沒有的話就添加此屬性并將屬性值設置為1_new.push(_a); //將此元素添加到新的數組。};
};
console.log(_new)
相關知識:
concat方法可以連接一個或者多個數組,返回連接后的新數組。
語法結構:arr.concat(數組一,數組二,…,數組N)
此方法并不會直接操作原數組,而是操作的原數組的副本。此方法的參數可以是一個數組,也可以是多個數組,數組與數組之間用逗號分隔。
push具有"壓入"的意思,棧內存是先進后出的,添加一個數據,稱作將數據壓入棧中。push()方法的操作與上述內存數據操作類似。
語法:arr.push(元素一,元素二,…,元素N)
此方法直接操作原來的數組,而不是一個副本。
返回值是新數組的長度。