1.复选框的全选和取消全选 41
1.1 代码在006 复选框的全选和取消
<!-- 复选框的全选和取消全选 41 -->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>复选框的全选和取消全选</title>
</head>
<body>
<script type="text/javascript">
/* window.onload=function(){
var firstChk = document.getElementById("firstChk");
firstChk.onclick=function(){
// 获取第一个复选框的选中状态(复选框对象checkbox对象)
//alert(firstChk.checked);//这个.checked会返回复选框的选中状态,true或false
//根据name获取所有元素
var aihaos = document.getElementsByName("aihao");
if(firstChk.checked){//如果群选按钮按下即true进入if
//全选
for(var i=0;i<aihaos.length;i++){
aihaos[i].checked=true;//设置将所有复选框选中
}
}else{
//取消全选
for(var i=0;i<aihaos.length;i++){
aihaos[i].checked=false;//设置将所有复选框取消选中
}
}
}
} */
//上面的代码简化写法
window.onload=function(){
var firstChk = document.getElementById("firstChk");
//根据name获取所有元素
var aihaos = document.getElementsByName("aihao");
firstChk.onclick=function(){
// 获取第一个复选框的选中状态(复选框对象checkbox对象)
//alert(firstChk.checked);//这个.checked会返回复选框的选中状态,true或false
for(var i=0;i<aihaos.length;i++){
aihaos[i].checked=firstChk.checked;//设置复选框aihaos[i]是否选中和全选复选框状态挂钩
}
}
//给每个复选框设置onclick
var all = aihaos.length;//复选框总数
//遍历数组
for(var i=0;i<aihaos.length;i++){
aihaos[i].onclick=function(){//给每一个复选框绑定onclick
var checkedCount = 0;//记录选中的复选框数量
//这个for循环需要所有的复选框绑定了onclick才会执行
for(var i=0;i<aihaos.length;i++){//单击任意复选框都会循环确认aihaos[i].checked的值是否被勾选
// 总数量和选中的数量相等的时候,第一个复选框选中.
if(aihaos[i].checked){
checkedCount++;
}
}
// 总数量和选中的数量相等的时候,第一个复选框选中.
/* if(all==checkedCount){
firstChk.checked=true;
}else{
firstChk.checked=false;
} */
//简化写法
firstChk.checked=(all==checkedCount);
}
}
}
</script>
<input type="checkbox" id="firstChk"/>全选<Br>
<input type="checkbox" name="aihao" value="smoke"/>抽烟<Br>
<input type="checkbox" name="aihao" value="drink"/>喝酒<Br>
<input type="checkbox" name="aihao" value="tt"/>烫头<Br>
</body>
</html>
2. 获取下拉列表选中项的value 42
2.1 代码在007 获取下拉列表选中项的value
<!-- 获取下拉列表选中项的value 42 -->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>获取下拉列表选中项的value</title>
</head>
<body>
<!-- 第一种写法 -->
<!-- onchange事件可以获取value值 -->
<!-- <select onchange="alert(this.value)">
<option value="">--请选择省份--</option>
<option value="001">河南省</option>
<option value="002">河北省</option>
<option value="003">山东省</option>
<option value="004">山西省</option>
</select> -->
<!-- 第二种写法 -->
<script type="text/javascript">
window.onload=function(){
var provinceLisElt = document.getElementById("provinceList")
provinceLisElt.onchange = function(){
//获取选中项的values
alert(provinceLisElt.value);
}
}
</script>
<select id="provinceList">
<option value="">--请选择省份--</option>
<option value="001">河南省</option>
<option value="002">河北省</option>
<option value="003">山东省</option>
<option value="004">山西省</option>
</select>
</body>
</html>
<!--
省份和市区的关系是:1对多
省份表t_province
id pcode pname
----------------------------
1 001 河北省
2 002 河南省
3 003 山东省
4 004 山西省
市区表t_city
id ccode cname pcode(fk)
----------------------------------------------
1 101 石家庄 001
2 102 保定 001
3 103 邢台 001
4 104 承德 001
5 105 张家口 001
6 106 邯郸 001
7 107 衡水 001
前端用户选择的假设是河北省,那么必须获取到河北省的pcode,获取到001
然后将001发送提交给服务器,服务器底层执行一条SQL语句:
select * from t_city where pcode = '001';
返回一个List集合,List<City> cityList;
cityList响应浏览器,浏览器在解析cityList集合转换成一个新的下拉列表。
-->
3. 显示网页时钟 43
获取系统当前时间 var nowTime = new Date();
输出 document.write(nowTime);
转换成具有本地语言环境的日期格式 toLocaleString()
自定制日期格式.
getFullYear();返回年的信息,以全格式getFullYear()返回例如2019年全格式返回就是2019, 不是全格式getYear()返回就是19
getMonth();//返回月份是0-11
getDate();//获取的是一周的第几天即0-6
getDate();//获取日期信息
3.1 周期函数setInterval 43
周期函数setInterval("函数名",毫秒数);
clearInterval(返回值);//停止window.setInterval函数的调用
代码在008 显示网页时钟
<!-- 显示网页时钟 周期函数setInterval 43 -->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>显示网页时钟 周期函数setInterval</title>
</head>
<body>
<script type="text/javascript">
/*
关于JS中内置的支持类:Date,可以用来获取时间/日期。
*/
// 获取系统当前时间
var nowTime = new Date();
//输出
document.write(nowTime);
document.write("<br>")//换行
//转换成具有本地语言环境的日期格式.
nowTime = nowTime.toLocaleString();
document.write(nowTime);
document.write("<br>")//换行
document.write("<br>")//换行
// 当以上格式不是自己想要的,可以通过日期获取年月日等信息,自定制日期格式.
var t = new Date();
//返回年的信息,以全格式getFullYear()返回例如2019年全格式返回就是2019,不是全格式getYear()返回就是19
var year = t.getFullYear();
var month = t.getMonth();//返回月份是0-11
//var dayOfWeek = t.getDate();//获取的是一周的第几天即0-6
var day = t.getDate();//获取日期信息
document.write(year+"年"+(month+1)+"月"+day+"日");
document.write("<br>")//换行
document.write("<br>")//换行
// 重点:怎么获取毫秒数?(从1970年1月1日 00:00:00 000到当前系统时间的总毫秒数)
//var times = t.getTime();
//document.write(times);//一般会使用毫秒数当做时间戳(timestamp)
document.write(new Date().getTime());//合为一句
document.write("<br>")//换行
document.write("<br>")//换行
</script>
<script type="text/javascript">
function displayTime(){
var time = new Date();
var strTime = time.toLocaleString();//具有本地语言环境的日期格式.
document.getElementById("timeDiv").innerHTML=strTime;
}
//设置每个1秒调用displayTime()函数
function start(){
//从这行代码执行结束,则会不间断的每隔1000毫秒也就是1秒调用一次displayTime()函数
//v接收返回值一个可以传给Window.clearInterval()从而取消对code的周期性执行的值
v = window.setInterval("displayTime()",1000); //周期函数setInterval("函数名",毫秒数);
}
function stop(){
window.clearInterval(v);//停止window.setInterval函数的调用
}
</script>
<input type="button" value="显示系统时间" onclick="start()"/>
<input type="button" value="停止系统时间" onclick="stop()"/>
<div id="timeDiv"></div>
</body>
</html>
4. 内置支持类Array(数组) 44
代码在008 显示网页时钟
<!-- 内置支持类Array 44 -->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>内置支持类Array</title>
</head>
<script type="text/javascript">
//创建数组长度0的数组
var arr = [];
alert(arr.length);
//数据类型随意
var arr2 = [1,2,3,false,"abc",3.14];
alert(arr2.length);
//下标会越界嘛
arr2[7]="test";//会自动扩容
//遍历
for(var i=0;i<arr2.length;i++){
document.write(arr2[i]+"<br>")
}
//另一种创建数组的对象的方式
var a = new Array();//数组长度是0
alert(a.length);//0
var a2 = new Array(3);//数组长度是3
alert(a2.length);//3
var a3 = new Array(3,2,1,8);//这个代表数组具体的存储的元素
alert(a3.length);//长度是4
var a4=[1,2,3,9];
var str = a4.join("-");//join()可以将数组元素取出来并且用 - 符号连接成字符串
alert(str);//1-2-3-9
//再数组的末尾添加一个元素(数组长度+1)
a4.push(10);
alert(a4.join("-"));//1-2-3-9-10
//将数组末尾元素弹出(数组长度-1)
var endElt = a4.pop();
alert(endElt);//10
alert(a4.join("-"));//1-2-3-9
// 注意:JS中的数组可以自动模拟栈数据结构:后进先出,先进后出原则.
// push压栈
// pop弹栈
//反转
a4.reverse();
alert(a4.join("-"));
</script>
</body>
</html>