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 相关文章推荐
jQuery实现点击后标记当前菜单位置(背景高亮菜单)效果
Aug 22 Javascript
jQuery zclip插件实现跨浏览器复制功能
Nov 02 Javascript
JS实现单击输入框弹出选择框效果完整实例
Dec 14 Javascript
jquery.serialize() 函数语法及简单实例
Jul 08 Javascript
基于canvas的二维码邀请函生成插件
Feb 14 Javascript
JavaScript对象引用与赋值实例详解
Mar 15 Javascript
jQuery 添加样式属性的优先级别方法(推荐)
Jun 08 jQuery
JS中图片压缩的方法小结
Nov 14 Javascript
vue ssr 指南详读
Jun 29 Javascript
Ajax请求时无法重定向的问题解决代码详解
Jun 21 Javascript
如何用vue-cli3脚手架搭建一个基于ts的基础脚手架的方法
Dec 12 Javascript
webpack 最佳配置指北(推荐)
Jan 07 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过滤所有恶意字符(批量过滤post,get敏感数据)
2014/03/18 PHP
PHP中Array相关函数简介
2016/07/03 PHP
php实现的三个常用加密解密功能函数示例
2017/11/06 PHP
脚本安需导入(装载)的三种模式的对比
2007/06/24 Javascript
javascript 常用关键字列表集合
2007/12/04 Javascript
使用indexOf等在JavaScript的数组中进行元素查找和替换
2013/09/18 Javascript
js判断变量初始化的三种形式及推荐用的形式
2014/07/22 Javascript
angularjs表格分页功能详解
2016/01/21 Javascript
javascript创建含数字字母的随机字符串方法总结
2016/08/01 Javascript
JavaScript的变量声明提升问题浅析(Hoisting)
2016/11/30 Javascript
详解AngularJS中$filter过滤器使用(自定义过滤器)
2017/02/04 Javascript
详谈jQuery中的一些正则匹配表达式
2017/03/08 Javascript
基于Vuejs和Element的注册插件的编写方法
2017/07/03 Javascript
jQuery实现锚点向下平滑滚动特效示例
2017/08/29 jQuery
ES6中Array.find()和findIndex()函数的用法详解
2017/09/16 Javascript
微信小程序的生命周期的详解
2017/10/19 Javascript
JS使用cookie保存用户登录信息操作示例
2019/05/30 Javascript
vue遍历对象中的数组取值示例
2019/11/07 Javascript
解决vue组件销毁之后计时器继续执行的问题
2020/07/21 Javascript
javascript贪吃蛇游戏设计与实现
2020/09/17 Javascript
react的hooks的用法详解
2020/10/12 Javascript
node中短信api实现验证码登录的示例代码
2021/01/20 Javascript
python实现清屏的方法
2015/04/30 Python
Pandas:Series和DataFrame删除指定轴上数据的方法
2018/11/10 Python
python opencv实现图像边缘检测
2019/04/29 Python
Windows 安装 Anaconda3+PyCharm的方法步骤
2019/06/13 Python
解决python便携版无法直接运行py文件的问题
2020/09/01 Python
python的链表基础知识点
2020/09/13 Python
英国第一的购买便宜玩具和游戏的在线购物网站:Bargain Max
2018/01/24 全球购物
AMAVII眼镜官网:时尚和设计师太阳镜
2019/05/05 全球购物
公交公司毕业生求职信
2014/02/15 职场文书
小区消防演习方案
2014/02/21 职场文书
大三学生做职业规划:给未来找个方向
2014/02/24 职场文书
2015年党员个人工作总结
2015/05/13 职场文书
执行力心得体会范文
2016/01/11 职场文书
css3实现的加载动画效果
2021/04/07 HTML / CSS