JS之document例题讲解1(两张表之间数据转移、日期时间选择、子菜单下拉、用div做下拉菜单、事件总结)
作业一:两个列表之间数据从一个列表移动到另一个列表
<div style="width:600px; height:500px; margin-top:20px"> <div style="width:200px; height:300px; float:left"> <select id="list1" size="10" style="width:200px; height:300px"> <option>山东</option> <option>北京</option> <option>河北</option> <option>黑龙江</option> <option>河南</option> </select> </div> <div style="width:80px; height:300px; float:left"> <input type="button" value="单移" id="btn1" style="width:70px; height:30px" onclick="Dan()"/> <input type="button" value="全移" id="btn2" style="width:70px; height:30px" onclick="Duo()"/> </div> <div style="width:200px; height:300px; float:left"> <select id="list2" size="10" style="width:200px; height:300px"></select> </div> </div>
function Dan() { var list1 = document.getElementById("list1"); //把列表1选中值取出 var v = list1.value; var s = "<option class='o2'>"+v+"</option>"; //造一个option项 var attr = document.getElementsByClassName("o2"); //把造的option项放在一个数组里面。 var cz = true;//默认是true for(var i=0;i<attr.length;i++) { if(attr[i].innerHTML==v) //判断右侧列表里是否有重复的 { cz = false; break; } } if(cz) { var list2 = document.getElementById("list2"); // 将option项扔到list2 list2.innerHTML +=s;//在列表2添加上 } } function Duo() { document.getElementById("list2").innerHTML = document.getElementById("list1").innerHTML; 直接复制列表选项 }
作业二:日期时间选择
<div style="width:600px; height:100px;"> <select id="year"></select>年 <select id="month" onchange="FillDay()"></select>月 <select id="day"></select>日 </div> </body> <script type="text/javascript"> FillYear(); FillMonth(); FillDay(); function FillYear() { var sj = new Date();//现在的日期时间 var nian = sj.getFullYear();//获取年份 var s = ""; for(var i=nian-5;i<nian+6;i++)//上下都是5年,i里面存的是年 { if(i==nian)//如果i等于当前的年,也就是2016年。 { s +="<option selected='selected'>"+i+"</option>";//下拉列表中默认出现的年份 } else { s +="<option>"+i+"</option>";//普通的年份 } } document.getElementById("year").innerHTML = s;//把这个字符串给年份的下拉 } function FillMonth() { var sj = new Date();//在这个位置调用 var yue = sj.getMonth()+1; var s = ""; for(var i=1;i<13;i++) { if(i==yue) { s +="<option selected='selected'>"+i+"</option>"; } else { s +="<option>"+i+"</option>"; } } document.getElementById("month").innerHTML=s; } function FillDay() { var sj = new Date(); var tian = sj.getDate(); var yue = document.getElementById("month").value; 取月份求天数 var n = 31; if(yue==4 || yue==6 ||yue==9 ||yue==11) { n = 30; } else if(yue==2) { n=28; } var s = ""; 用循环添加 for(var i=1;i<n+1;i++) { if(i==tian) { s +="<option selected='selected'>"+i+"</option>"; } else { s +="<option>"+i+"</option>"; } } document.getElementById("day").innerHTML = s; }
例题一、子菜单下拉
<style type="text/css"> *{ margin:0px auto; padding:0px} #menu{ width:700px; height:40px; border:1px solid #999; margin-top:30px} .list{ width:100px; height:40px; text-align:center; line-height:40px; vertical-align:middle; font-size:16px; font-family:微软雅黑; float:left} .list:hover{ cursor:pointer; background-color:#63C; color:white} .ziwai{width:0px; height:0px;position:relative; float:left; top:40px; left:-100px} .zi{ width:100px; height:100px; background-color:#6C3; display:none }//默认下拉都隐藏 </style> </head> <body> <div id="menu"> <div class='list' onmouseover="Show('z1')" onmouseout="YinCang()">首页</div> <div class="ziwai" > <div class="zi" id="z1"></div> </div> <div class='list' onmouseover="Show('z2')" onmouseout="YinCang()">产品介绍</div> <div class="ziwai" > <div class="zi" id="z2"></div> </div> <div class='list' onmouseover="Show('z3')" onmouseout="YinCang()">公司简介</div> <div class="ziwai" > <div class="zi" id="z3"></div> </div> <div class='list' onmouseover="Show('z4')" onmouseout="YinCang()">联系我们</div> <div class="ziwai" > <div class="zi" id="z4"></div> </div> <div class='list' onmouseover="Show('z5')" onmouseout="YinCang()">新闻动态</div> <div class="ziwai" > <div class="zi" id="z5"></div> </div> </div> </body> <script type="text/javascript"> function Show(id) { var attr = document.getElementsByClassName("zi"); for(var i=0; i<attr.length;i++) { attr[i].style.display = "none"; 让所有的子菜单隐藏 } document.getElementById(id).style.display = "block"; 让和该菜单关联的子菜单显示 } function YinCang() { var attr = document.getElementsByClassName("zi"); for(var i=0; i<attr.length;i++) { attr[i].style.display = "none"; } } </script>
例题二、用div做下拉列表
<title>无标题文档</title> <style type="text/css"> *{ margin:0px auto; padding:0px} #xiala{ width:180px; height:33px; border:1px solid #999;text-align:center; line-height:33px; vertical-align:middle; } #xiala:hover{ cursor:pointer} #zi{width:180px; height:150px; border:1px solid #63C; border-top:0px; display:none} .list{width:180px; height:33px; text-align:center; line-height:33px; vertical-align:middle; border-bottom:1px solid #63C; background-color:#CCC} .list:hover{ cursor:pointer; background-color:#63C; color:white} </style> </head> <body> <div style="width:700px; height:500px; margin-top:30px"> <div id="xiala" onclick="Show()"></div> <div id="zi"> <div class="list" onclick="Xuan(this)">山东</div>//this表示一个元素这个元素相当于它本身。this写在哪一行里,就相当于这一行本身。 <div class="list" onclick="Xuan(this)">淄博</div> <div class="list" onclick="Xuan(this)">张店</div> </div> </div> </body> <script type="text/javascript"> function Show() { document.getElementById("zi").style.display="block"; } function Xuan(ys)//ys代表选中的元素(山东、淄博、张店所在的div) { var v = ys.innerText; document.getElementById("xiala").innerText = v; document.getElementById("zi").style.display="none"; } </script>
事件总结
通用:
1.onclick 鼠标单击效果
2.ondbclick 鼠标双击效果
3.onchange 表单的值改变
4.onmouseover 鼠标放上
5.onmouseout 鼠标离开
6.onmousemove 鼠标移动
表单特有:
1.onchang 表单的值改变
2.onblur 失去焦点
3.onfocus 获得焦点
4.onselect 选中