new Option()——實現時間聯動

来源:https://www.cnblogs.com/Joe-and-Joan/archive/2018/12/10/10096138.html
-Advertisement-
Play Games

1、基礎準備: 先來瞭解下,如何運用js實現select動態添加option。 //1.動態創建select function createSelect(){ var mySelect = document.createElement("select"); mySelect.id = "mySele ...


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、時間聯動實戰

  時間聯動的要點就是天數隨月份變化,考慮閏年,口訣:四年一閏,百年不,四百年再。 

 1 <!DOCTYPE html>
 2 <html>
 3 
 4 <head>
 5     <meta charset="utf-8" />
 6 
 7     <title>日期和年份月份聯動demo</title>
 8 
 9 </head>
10 
11 <body>
12     <select id="year">
13         <option value="">請選擇年份</option>
14     </select>
15     <select id="month">
16         <option value="">請選擇月份</option>
17     </select>
18     <select id="day">
19         <option value="">請選擇日期</option>
20     </select>
21     <script>
22         var year = document.getElementById("year");
23         var month = document.getElementById("month");
24         var day = document.getElementById("day");
25         var y = new Date().getFullYear();
26         //前後均有
27         for (i = (y - 30); i < (y + 30); i++) {
28             year.options.add(new Option(i + "年", i));
29             //格式不要寫錯,不要寫成add(new Option(i + "年"), i)。
30         }
31         //只寫前或者後
32         // for(var i=y;i>1977;i--){
33         //     year.options[y+1-i]=new Option(i+"年",i);//索引是options[],增加是new option(text,value)
34         // }
35         for (i = 1; i < 13; i++) {
36             month.options.add(new Option(i + "月", i));
37         }
38 
39         var d = function () {
40             day.length = 1; //初始化
41             if (year.value == " " || month.value == " ") {
42                 return;
43             } else {
44                 var Days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
45                 if ((year.value % 4 == 0 && year.value % 100 != 0) || year.value % 400 == 0) {
46                     Days[1]++; //判斷為閏年,二月天數加一
47                 }
48                 for (i = 1; i <= Days[month.value - 1]; i++) {
49                     day.options.add(new Option((i + "日"), i));
50                 }
51             }
52         }
53         //刷新日期天數
54         year.onchange = function () {
55             d();
56         }
57         month.onchange = function () {
58             d();
59         }
60     </script>
61 </body>
62 
63 </html>

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • js 介面: 調用: 具體詳見官方api,很詳細 http://element.eleme.io/#/zh-CN/component/upload#attribute ...
  • Blob, Uint8Aray, atob/btoa in lt IE9 browser ...
  • 效果展示 項目背景: 由於瀏覽器的限制,web批量下載體驗不好以及無法下載文件夾。採用Electron技術,通過js開發PC應用程式,著力解決批量下載、斷點續傳、文件夾下載等問題。配合網頁版網盤使用,單個小文件使用瀏覽器內置下載,單個大文件、多文件、文件夾調用PC應用程式,提升下載體驗。 技術棧 E ...
  • 首先在最外層div添加v-if="isReloadAlive",並創建變數isReloadAlive = true 隨後添加provide()以及reload方法,如下: export default { provide() { return { reload: this.reload } }, d ...
  • ...
  • vue route transition vue router 切換動畫 特性 模擬前進後退動畫 基於css3流暢動畫 基於sessionStorage,頁面刷新不影響路由記錄 路由懶載入,返回可記錄滾動條位置 前進後退的判斷與路由路徑規則無關 支持任意基於Vue的UI框架 demo 手機掃碼 "在 ...
  • // 簡訊提交驗證 //$(function(){ var daoshu = 60; var timer = null; //手機號 function checkPhone(){ var phoneNumber = $.trim($('#t_code').val()); var phone = do ...
  • var time = new Date(); //當前時間 var year = time.getFullYear();//當前年份 var month = time.getMonth()+1; //當前月份 var Same_day = time.getDate(); //當前月份幾號 var t... ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...