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 parseInt 函数分析(转)
Mar 21 Javascript
JQuery 前台切换网站的样式实现
Jun 22 Javascript
javascript与cookie 的问题详解
Nov 11 Javascript
js小数计算小数点后显示多位小数的实现方法
May 30 Javascript
js HTML5多媒体影音播放
Oct 17 Javascript
jstree创建无限分级树的方法【基于ajax动态创建子节点】
Oct 25 Javascript
AngularJS实现动态编译添加到dom中的方法
Nov 04 Javascript
JS实现太极旋转思路分析
Dec 09 Javascript
用最简单的方法判断JavaScript中this的指向(推荐)
Sep 04 Javascript
关于react中组件通信的几种方式详解
Dec 10 Javascript
javascript实现计算器功能
Mar 30 Javascript
不依任何赖第三方,单纯用vue实现Tree 树形控件的案例
Sep 21 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与XML的PDF文档生成技术
2006/10/09 PHP
php封装json通信接口详解及实例
2017/03/07 PHP
完美解决Thinkphp3.2中插入相同数据的问题
2017/08/01 PHP
PHP-FPM和Nginx的通信机制详解
2019/02/01 PHP
PHP实现15位身份证号转18位的方法分析
2019/10/16 PHP
Javascript调用XML制作连动下拉列表框
2006/06/25 Javascript
无阻塞加载脚本分析[全]
2011/01/20 Javascript
jQuery 获取兄弟元素的几种不错方法
2014/05/23 Javascript
JQuery中Bind()事件用法分析
2015/05/05 Javascript
浅谈js多维数组和hash数组定义和使用
2016/07/27 Javascript
不间断循环滚动效果的实例代码(必看篇)
2016/10/08 Javascript
微信分享调用jssdk实例
2017/06/08 Javascript
jquery拖动改变div大小
2017/07/04 jQuery
原生JavaScript实现的简单放大镜效果示例
2018/02/07 Javascript
JS前端知识点 运算符优先级,URL编码与解码,String,Math,arguments操作整理总结
2019/06/27 Javascript
JS图片预加载三种实现方法解析
2020/05/08 Javascript
纯JS实现五子棋游戏
2020/05/28 Javascript
小程序实现列表展开收起效果
2020/07/29 Javascript
javascript实现扫雷简易版
2020/08/18 Javascript
[01:32]2016国际邀请赛中国区预选赛IG战队首日赛后采访
2016/06/27 DOTA
从零学Python之入门(三)序列
2014/05/25 Python
python内置函数:lambda、map、filter简单介绍
2017/11/16 Python
Python常见数据类型转换操作示例
2019/05/08 Python
Django的Modelforms用法简介
2019/07/27 Python
python实现一个函数版的名片管理系统过程解析
2019/08/27 Python
Numpy一维线性插值函数的用法
2020/04/22 Python
HTML5 表单验证失败的提示语问题
2017/07/13 HTML / CSS
全球速卖通俄罗斯站:AliExpress俄罗斯
2019/06/17 全球购物
管理学专业个人求职信范文
2013/12/13 职场文书
委托书范本
2014/04/02 职场文书
遵纪守法演讲稿
2014/05/23 职场文书
电子信息工程专业自荐书
2014/06/24 职场文书
个人股份合作协议书
2014/10/24 职场文书
2014年教育工作总结
2014/11/26 职场文书
导游词之香港-太平山顶
2019/10/18 职场文书
node.js使用express-fileupload中间件实现文件上传
2021/07/16 Javascript