JS之document例题讲解1(两张表之间数据转移、日期时间选择、子菜单下拉、用div做下拉菜单、事件总结)

2022-12-07,,,,

作业一:两个列表之间数据从一个列表移动到另一个列表

<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 选中

JS之document例题讲解1(两张表之间数据转移、日期时间选择、子菜单下拉、用div做下拉菜单、事件总结)的相关教程结束。

《JS之document例题讲解1(两张表之间数据转移、日期时间选择、子菜单下拉、用div做下拉菜单、事件总结).doc》

下载本文的Word格式文档,以方便收藏与打印。