JS中使用new Option()实现时间联动效果


Posted in Javascript onDecember 10, 2018

1、基础准备:

先来了解下,如何运用js实现select动态添加option。

//1.动态创建select
function createSelect(){
  var mySelect = document.createElement("select");
  mySelect.id = "mySelect"; 
  document.body.appendChild(mySelect);
}
//2.添加选项option
function addOption(){
  //根据id查找对象,
  var obj=document.getElementById('mySelect');
  //添加一个选项
  obj.add(new Option("文本","值"));  //方法一:
  obj.options.add(new Option("text","value")); //方法二:
  for(var i=0;i<10;i++){
    obj.options[i]=new Option("新文本","新值");  //方法三:
  }
}
//3.删除所有选项option
function removeAll(){
  var obj=document.getElementById('mySelect');
  obj.options.length=0;
}
//4.删除一个选项option
function removeOne(){
  var obj=document.getElementById('mySelect');
  var index=obj.selectedIndex;  //index,要删除选项的序号
  obj.options.remove(index);
}
//5.获得选项option的值
var obj=document.getElementById('mySelect');
var index=obj.selectedIndex;   //序号,取当前选中选项的序号
var val = obj.options[index].value;
//6.获得选项option的文本
var obj=document.getElementById('mySelect');
var index=obj.selectedIndex;  
var val = obj.options[index].text;
//7.修改选项option
var obj=document.getElementById('mySelect');
var index=obj.selectedIndex;  
var val = obj.options[index]=new Option("新文本","新值");
//8.删除select
function removeSelect(){
  var mySelect = document.getElementById("mySelect");
  mySelect.parentNode.removeChild(mySelect);
}

2、时间联动实战

时间联动的要点就是天数随月份变化,考虑闰年,口诀:四年一闰,百年不闰,四百年再闰。

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8" />
  <title>日期和年份月份联动demo</title>
</head>
<body>
  <select id="year">
    <option value="">请选择年份</option>
  </select>
  <select id="month">
    <option value="">请选择月份</option>
  </select>
  <select id="day">
    <option value="">请选择日期</option>
  </select>
  <script>
    var year = document.getElementById("year");
    var month = document.getElementById("month");
    var day = document.getElementById("day");
    var y = new Date().getFullYear();
    //前后均有
    for (i = (y - 30); i < (y + 30); i++) {
      year.options.add(new Option(i + "年", i));
      //格式不要写错,不要写成add(new Option(i + "年"), i)。
    }
    //只写前或者后
    // for(var i=y;i>1977;i--){
    //   year.options[y+1-i]=new Option(i+"年",i);//索引是options[],增加是new option(text,value)
    // }
    for (i = 1; i < 13; i++) {
      month.options.add(new Option(i + "月", i));
    }
    var d = function () {
      day.length = 1; //初始化
      if (year.value == " " || month.value == " ") {
        return;
      } else {
        var Days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
        if ((year.value % 4 == 0 && year.value % 100 != 0) || year.value % 400 == 0) {
          Days[1]++; //判断为闰年,二月天数加一
        }
        for (i = 1; i <= Days[month.value - 1]; i++) {
          day.options.add(new Option((i + "日"), i));
        }
      }
    }
    //刷新日期天数
    year.onchange = function () {
      d();
    }
    month.onchange = function () {
      d();
    }
  </script>
</body>
</html>

总结

以上所述是小编给大家介绍的JS中使用new Option()实现时间联动效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript+iframe 实现无刷新载入整页的代码
Mar 17 Javascript
jquery、js操作checkbox全选反选
Mar 12 Javascript
深入理解JavaScript系列(44):设计模式之桥接模式详解
Mar 04 Javascript
Angularjs中UI Router全攻略
Jan 29 Javascript
javascript html5 canvas实现可拖动省份的中国地图
Mar 11 Javascript
JS之获取样式的简单实现方法(推荐)
Sep 13 Javascript
JS实现的相册图片左右滚动完整实例
Nov 23 Javascript
获取select的value、text值的简单示例(jquery与javascript)
Dec 07 Javascript
BootstrapValidator实现注册校验和登录错误提示效果
Mar 10 Javascript
基于jQuery选择器之表单对象属性筛选选择器的实例
Sep 19 jQuery
详解Node使用Puppeteer完成一次复杂的爬虫
Apr 18 Javascript
vue实现简单图片上传
Jun 30 Javascript
vue刷新页面时去闪烁提升用户体验效果的实现方法
Dec 10 #Javascript
移动端如何用下拉刷新的方式实现上拉加载
Dec 10 #Javascript
vue+Element-ui实现分页效果实例代码详解
Dec 10 #Javascript
JQuery实现ajax请求的示例和注意事项
Dec 10 #jQuery
微信小程序实现动态获取元素宽高的方法分析
Dec 10 #Javascript
PM2自动部署代码步骤流程总结
Dec 10 #Javascript
vue路由前进后退动画效果的实现代码
Dec 10 #Javascript
You might like
php 启动时报错的简单解决方法
2014/01/27 PHP
PHP答题类应用接口实例
2015/02/09 PHP
分享php分页的功能模块
2015/06/16 PHP
php一个文件搞定微信jssdk配置
2016/12/12 PHP
PHP实现通过文本文件统计页面访问量功能示例
2019/02/13 PHP
IE8 原生JSON支持
2009/04/13 Javascript
实现JavaScript中继承的三种方式
2009/10/16 Javascript
jquery 分页控件实现代码
2009/11/30 Javascript
jquery限定文本框只能输入数字即整数和小数
2013/11/29 Javascript
javascript省市区三级联动下拉框菜单实例演示
2015/11/29 Javascript
JS出现失效的情况总结
2017/01/20 Javascript
玩转vue的slot内容分发
2018/09/22 Javascript
js中自定义react数据验证组件实例详解
2018/10/19 Javascript
微信小程序自定义键盘 内部虚拟支付
2018/12/20 Javascript
JavaScript强制类型转换和隐式类型转换操作示例
2019/05/01 Javascript
解决Layui中templet中a的onclick参数传递的问题
2019/09/20 Javascript
[01:23:45]DOTA2-DPC中国联赛 正赛 CDEC vs Dragon BO3 第一场 1月22日
2021/03/11 DOTA
python实现哈希表
2014/02/07 Python
python正则表达式re模块详细介绍
2014/05/29 Python
python使用Berkeley DB数据库实例
2014/09/26 Python
Python数据结构与算法之图结构(Graph)实例分析
2017/09/05 Python
Python Flask框架扩展操作示例
2019/05/03 Python
Python中typing模块与类型注解的使用方法
2019/08/05 Python
Python 根据数据模板创建shapefile的实现
2019/11/26 Python
使用Python解析Chrome浏览器书签的示例
2020/11/13 Python
纯css3实现的鼠标悬停动画按钮
2014/12/23 HTML / CSS
mui几种页面跳转方式对比总结概括
2017/08/18 HTML / CSS
Banana Republic英国官网:香蕉共和国,GAP集团旗下偏贵族风
2018/04/24 全球购物
JD Sports澳洲官网:英国领先的运动鞋和运动时尚零售商
2020/02/15 全球购物
计算机专业个人求职自荐信
2013/09/21 职场文书
毕业实习证明(4篇)
2014/10/28 职场文书
道路交通事故人身损害赔偿协议书
2014/11/19 职场文书
法定代表人证明书
2014/11/28 职场文书
2015年医德考评自我评价
2015/03/03 职场文书
法律进社区活动总结
2015/05/07 职场文书
《鸟的天堂》教学反思
2016/02/19 职场文书