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 相关文章推荐
在IE上直接编辑网页内容的js代码(IE地址栏js)
Apr 27 Javascript
jquery实现带单选按钮的表格行选中时高亮显示
Aug 01 Javascript
js倒计时小程序
Nov 05 Javascript
JS跨域问题详解
Nov 25 Javascript
Javascript中replace()小结
Sep 30 Javascript
jQuery获取DOM节点实例分析(2种方式)
Dec 15 Javascript
JS Select下拉框(支持输入模糊查询)
Feb 04 Javascript
AugularJS从入门到实践(必看篇)
Jul 10 Javascript
用node-webkit把web应用打包成桌面应用(windows环境)
Feb 01 Javascript
通过 JS 判断页面是否有滚动条的实现方法
Apr 05 Javascript
vue中实现拖动调整左右两侧div的宽度的示例代码
Jul 22 Javascript
JS高级程序设计之class继承重点详解
Jul 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扩展php_curl.dll不加载的解决方法
2013/06/26 PHP
php使用base64加密解密图片示例分享
2014/01/20 PHP
使用PHP生成图片的缩略图的方法
2015/08/18 PHP
PHP 输出缓冲控制(Output Control)详解
2016/08/25 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
php使用fputcsv实现大数据的导出操作详解
2020/02/27 PHP
JavaScript学习笔记(二) js对象
2011/10/25 Javascript
IE6-8中Date不支持toISOString的修复方法
2014/05/04 Javascript
JS函数重载的解决方案
2014/05/13 Javascript
JavaScript中length属性的使用方法
2015/06/05 Javascript
jQuery中的siblings用法实例分析
2015/12/24 Javascript
浅谈javascript中的事件冒泡和事件捕获
2016/12/28 Javascript
javascript 中设置window.location.href跳转无效问题解决办法
2017/02/09 Javascript
jQuery实现大图轮播
2017/02/13 Javascript
支持移动端原生js轮播图
2017/02/16 Javascript
JS实现的点击表头排序功能示例
2017/03/27 Javascript
bootstrap日期插件daterangepicker使用详解
2017/10/19 Javascript
微信小程序实现的一键连接wifi功能示例
2019/04/24 Javascript
如何对react hooks进行单元测试的方法
2019/08/14 Javascript
使用layui实现的左侧菜单栏以及动态操作tab项方法
2019/09/10 Javascript
es6中class类静态方法,静态属性,实例属性,实例方法的理解与应用分析
2020/02/15 Javascript
vue 函数调用加括号与不加括号的区别
2020/10/29 Javascript
Python中装饰器学习总结
2018/02/10 Python
python3.7.0的安装步骤
2018/08/27 Python
Tensorflow限制CPU个数实例
2020/02/06 Python
浅谈keras中的keras.utils.to_categorical用法
2020/07/02 Python
Python接口自动化测试的实现
2020/08/28 Python
HTML5是否真的可以取代Flash
2010/02/10 HTML / CSS
村委会贫困证明范本
2014/09/17 职场文书
党员对十八届四中全会的期盼思想汇报范文
2014/10/17 职场文书
走群众路线学习笔记
2014/11/06 职场文书
人间正道是沧桑观后感
2015/06/15 职场文书
大学生各类奖学金申请书
2019/06/24 职场文书
再次探讨go实现无限 buffer 的 channel方法
2021/06/13 Golang
解决mysql问题:由于找不到MSVCR120.dll,无法继续执行代码
2021/06/26 MySQL
win10蓝屏0xc0000001安全模式进不了怎么办?win10出现0xc0000001的解决方法
2022/08/05 数码科技