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 相关文章推荐
飞鱼(shqlsl) javascript作品集
Dec 16 Javascript
JavaScript 保存数组到Cookie的代码
Apr 14 Javascript
IE 当eval遇上function的处理
Aug 09 Javascript
js原型链原理看图说明
Jul 07 Javascript
javascript实现可改变滚动方向的无缝滚动实例
Jun 17 Javascript
JavaScript 定时器 SetTimeout之定时刷新窗口和关闭窗口(代码超简单)
Feb 26 Javascript
jQuery使用cookie与json简单实现购物车功能
Apr 15 Javascript
BootStrap 图片样式、辅助类样式和CSS组件的实例详解
Jan 20 Javascript
vue+vant使用图片预览功能ImagePreview的问题解决
Apr 10 Javascript
JS可断点续传文件上传实现代码解析
Jul 30 Javascript
手把手教你如何编译打包video.js
Dec 09 Javascript
JavaScript基于SVG的图片切换效果实例代码
Dec 15 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
怎样在UNIX系统下安装php3
2006/10/09 PHP
php函数array_merge用法一例(合并同类数组)
2013/02/03 PHP
PHP附件下载中文名称乱码的解决方法
2015/12/17 PHP
PHP和MYSQL实现分页导航思路详解
2017/04/11 PHP
thinkphp5 migrate数据库迁移工具
2018/02/20 PHP
解决PHP curl或file_get_contents下载图片损坏或无法打开的问题
2019/10/11 PHP
漂亮的widgets,支持换肤和后期开发新皮肤
2007/04/23 Javascript
jquery分页插件jquery.pagination.js使用方法解析
2016/04/01 Javascript
Canvas 制作动态进度加载水球详解及实例代码
2016/12/09 Javascript
javascript 中的try catch应用总结
2017/04/01 Javascript
在vue里面设置全局变量或数据的方法
2018/03/09 Javascript
webpack+react+antd脚手架优化的方法
2018/04/02 Javascript
基于Vue的延迟加载插件vue-view-lazy
2018/05/21 Javascript
详解微信UnionID作用
2019/05/15 Javascript
[01:14]DOTA2亚洲邀请赛小组赛赛前花絮
2017/03/27 DOTA
[01:08:48]LGD vs OG 2018国际邀请赛淘汰赛BO3 第三场 8.25
2018/08/29 DOTA
Python中endswith()函数的基本使用
2015/04/07 Python
浅谈Python中列表生成式和生成器的区别
2015/08/03 Python
Python实现将文本生成二维码的方法示例
2017/07/18 Python
初探TensorFLow从文件读取图片的四种方式
2018/02/06 Python
pandas 空的dataframe 插入列名的示例
2018/10/30 Python
Python整数与Numpy数据溢出问题解决
2019/09/11 Python
python opencv实现信用卡的数字识别
2020/01/12 Python
关于pytorch中全连接神经网络搭建两种模式详解
2020/01/14 Python
python GUI库图形界面开发之PyQt5选项卡控件QTabWidget详细使用方法与实例
2020/03/01 Python
python中entry用法讲解
2020/12/04 Python
Python3中的tuple函数知识点讲解
2021/01/03 Python
python实现模拟器爬取抖音评论数据的示例代码
2021/01/06 Python
html5画布旋转效果示例
2014/01/27 HTML / CSS
业务主管岗位职责范本
2013/12/25 职场文书
公司活动邀请函
2014/01/24 职场文书
会计电算化应届生自荐信
2014/02/25 职场文书
大学生求职信范文
2014/05/24 职场文书
PyTorch 如何设置随机数种子使结果可复现
2021/05/12 Python
Mybatis-Plus 使用 @TableField 自动填充日期
2022/04/26 Java/Android
SpringBoot接入钉钉自定义机器人预警通知
2022/07/15 Java/Android