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 相关文章推荐
Prototype 学习 工具函数学习($w,$F方法)
Jul 12 Javascript
jQuery 隔行换色 支持键盘上下键,按Enter选定值
Aug 02 Javascript
Javascript笔记一 js以及json基础使用说明
May 22 Javascript
jQuery仿gmail实现fixed布局的方法
May 27 Javascript
浅谈利用JavaScript进行的DDoS攻击原理与防御
Jun 04 Javascript
基于jQuery对象和DOM对象和字符串之间的转化实例
Aug 08 jQuery
JavaScript实现鼠标滚轮控制页面图片切换功能示例
Oct 14 Javascript
解决JSON.stringify()自动将中文转译成unicode的问题
Jan 05 Javascript
使用typescript开发angular模块并发布npm包
Apr 19 Javascript
基于Vue 2.0 监听文本框内容变化及ref的使用说明介绍
Aug 24 Javascript
通过js示例讲解时间复杂度与空间复杂度
Aug 06 Javascript
JS实现炫酷雪花飘落效果
Aug 19 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
BBS(php &amp; mysql)完整版(四)
2006/10/09 PHP
PHP cron中的批处理
2008/09/16 PHP
php session 预定义数组
2009/03/16 PHP
smarty中post用法实例
2014/11/28 PHP
php实现随机显示图片方法汇总
2015/05/21 PHP
PHP中Closure类的使用方法及详解
2015/10/09 PHP
win10环境PHP 7 安装配置【教程】
2016/05/09 PHP
php错误日志简单配置方法
2016/07/11 PHP
PHP 根据key 给二维数组分组
2016/12/09 PHP
php利用fsockopen GET/POST提交表单及上传文件
2017/05/22 PHP
Javascript基于对象三大特性(封装性、继承性、多态性)
2016/01/04 Javascript
原生js简单实现放大镜特效
2017/05/16 Javascript
CSS3+JavaScript实现翻页幻灯片效果
2017/06/28 Javascript
Vue DevTools调试工具的使用
2017/12/05 Javascript
在react中使用vuex的示例代码
2018/07/30 Javascript
vue.js自定义组件directives的实例代码
2018/11/09 Javascript
Weex开发之WEEX-EROS开发踩坑(小结)
2019/10/16 Javascript
在pycharm中开发vue的方法步骤
2020/03/04 Javascript
js抽奖转盘实现方法分析
2020/05/16 Javascript
vue+elementUI中表格高亮或字体颜色改变操作
2020/11/02 Javascript
Python2.x版本中基本的中文编码问题解决
2015/10/12 Python
virtualenv实现多个版本Python共存
2017/08/21 Python
python爬虫 模拟登录人人网过程解析
2019/07/31 Python
Python获取时间范围内日期列表和周列表的函数
2019/08/05 Python
python打印直角三角形与等腰三角形实例代码
2019/10/20 Python
python字典setdefault方法和get方法使用实例
2019/12/25 Python
python matplotlib画盒图、子图解决坐标轴标签重叠的问题
2020/01/19 Python
Matplotlib.pyplot 三维绘图的实现示例
2020/07/28 Python
如何使用scrapy中的ItemLoader提取数据
2020/09/30 Python
python 利用panda 实现列联表(交叉表)
2021/02/06 Python
非洲NO.1网上商店:Jumia肯尼亚
2016/08/18 全球购物
中专生毕业自我鉴定
2013/11/01 职场文书
国旗下的演讲稿
2014/05/08 职场文书
2014年就业工作总结
2014/11/26 职场文书
城南旧事观后感
2015/06/11 职场文书
小学主题班会教案
2015/08/17 职场文书