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 相关文章推荐
CSS+Table图文混排中实现文本自适应图片宽度(超简单+跨所有浏览器)
Feb 14 Javascript
extJs 常用到的增,删,改,查操作代码
Dec 28 Javascript
这段js代码得节约你多少时间
Dec 20 Javascript
jQuery实现Tab菜单滚动切换的方法
Sep 21 Javascript
jQuery实用技巧必备(上)
Nov 02 Javascript
jQuery中each()、find()和filter()等节点操作方法详解(推荐)
May 25 Javascript
jQuery实现div横向拖拽排序的简单实例
Jul 13 Javascript
js实现4个方向滚动的球
Mar 06 Javascript
纯JavaScript实现实时反馈系统时间
Oct 26 Javascript
详解为Bootstrap Modal添加拖拽的方法
Jan 05 Javascript
vue的安装及element组件的安装方法
Mar 09 Javascript
详解node登录接口之密码错误限制次数(含代码)
Oct 25 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
多文件上传的例子
2006/10/09 PHP
采用PHP函数memory_get_usage获取PHP内存清耗量的方法
2011/12/06 PHP
解析php session_set_save_handler 函数的用法(mysql)
2013/06/29 PHP
php通过字符串调用函数示例
2014/03/02 PHP
php中explode的负数limit用法分析
2015/02/27 PHP
Symfony2中被遗弃的getRequest()方法分析
2016/03/17 PHP
php提交表单时保留多个空格及换行的文本样式的方法
2017/06/20 PHP
PHP+Ajax实现的检测用户名功能简单示例
2019/02/12 PHP
AJAX使用了UpdatePanel后无法使用alert弹出脚本
2010/04/02 Javascript
JavaScript核心语法总结(推荐)
2016/06/02 Javascript
Vue.js组件使用开发实例教程
2016/11/01 Javascript
[原创]javascript typeof id==='string'?document.getElementById(id):id解释
2016/11/02 Javascript
js仿iphone秒表功能 计算平均数
2017/01/11 Javascript
让你5分钟掌握9个JavaScript小技巧
2018/06/09 Javascript
解决vue单页路由跳转后scrollTop的问题
2018/09/03 Javascript
浅谈Vue SSR中的Bundle的具有使用
2019/11/21 Javascript
Python遍历文件夹和读写文件的实现代码
2016/08/28 Python
Python爬虫实战:分析《战狼2》豆瓣影评
2018/03/26 Python
python使用for循环计算0-100的整数的和方法
2019/02/01 Python
用python3 返回鼠标位置的实现方法(带界面)
2019/07/05 Python
Python matplotlib画曲线例题解析
2020/02/07 Python
pyinstaller将含有多个py文件的python程序做成exe
2020/04/29 Python
Python selenium 加载并保存QQ群成员,去除其群主、管理员信息的示例代码
2020/05/28 Python
python+selenium 简易地疫情信息自动打卡签到功能的实现代码
2020/08/22 Python
浅析NumPy 切片和索引
2020/09/02 Python
苹果美国官方商城:Apple美国
2016/08/24 全球购物
吉列剃须刀英国官网:Gillette英国
2019/03/28 全球购物
法制宣传月活动总结
2014/04/29 职场文书
环保标语口号
2014/06/13 职场文书
小学生春游活动方案
2014/08/20 职场文书
入党积极分子批评与自我批评思想汇报
2014/09/14 职场文书
群众路线个人对照检查材料2014
2014/09/26 职场文书
2014年高中生自我评价范文
2014/09/26 职场文书
中学团支部工作总结
2015/08/13 职场文书
Python初识逻辑与if语句及用法大全
2021/08/07 Python
「租借女友」第2季樱泽墨角色PV&新视觉图公开
2022/03/21 日漫