题目一:
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)
此方法直接操作原来的数组,而不是一个副本。
返回值是新数组的长度。