本文實例講述了JavaScript輸出所選擇起始與結束日期的方法。分享給大家供大家參考,具體如下:
一直在用公司的報表工具做報表,報表里最常用的查詢條件就是開始日期、結束日期。
自己會一點html和js,于是就想用html+JavaScript來實現選擇查詢日期,以及做出相應。
實現之后,覺得這個還是比較簡單的,N年前學的html和javascript,總算是派上用場了,人人都可以開發網頁。
這個代碼要在谷歌的chrome瀏覽器中,日期選擇才能有效果(代碼中的input元素Type屬性值date為HTML5元素,需要支持HTML5的瀏覽器運行)
代碼如下:
<!DOCTYPE HTML><html><head> <meta http-equiv="content-type" content="charset=gbk"></meta> <script type="text/javascript"> function query() { var xx = document.getElementsByName("day"); var s=""; for (var i=0;i<xx.length ;i++ ) { if(xx[i].tagName == 'TD') s= s + xx[i].innerText; //alert(xx[i].innerText); else { if(xx[i].tagName == 'INPUT') { s += xx[i].value; //由于沒有選擇日期,默認值是空串 //if(xx[i].value == null || xx[i].value == 'Undefined' || xx[i].value == "") // alert(xx[i].value); } } if( i % 2 == 1) s+=";"; } var yy = document.getElementById("sp"); yy.innerHTML = s; //document.write("abcdefg<hr>"); //alert(xx.length); } </script></head><body> <table> <tr> <td name="day">開始日期: <input type="date" name="day" /></td> <td name="day">結束日期:<input type="date" name="day" /></td> <td><input type="button" value="查 詢" onclick="query()" /> </td> </tr> <tr> <td><span id="sp"></span></td> </tr> </table></body></html>
寫完這個代碼后,第一個感覺是javascript是一個區分大小寫的編程語言,在我印象中好像就VB、SQL是不區分大小寫的,而其他的c#、java、python都是區分大小寫的,今天在寫js代碼時,很大一個坑就是定義的變量是小寫s,但是寫出大寫的S了,過了5分鐘才發現總是報錯:變量沒有定義。。。
運行效果如下:
通過這個例子,我感覺自己對js 、html更加了解:
1、日期選擇的輸入,這里通過input標簽的 type=date來實現。
2、當選擇日期之后,點擊按鈕,這個按鈕上的文字,是通過 input type=button的value屬性來實現。
3、點擊按鈕之后,怎么響應?寫上onclick數學=“處理函數” 就可以
4、這個onclick事件的響應函數要怎么寫?這里點擊之后,會輸出選擇的日期。
5、如何獲取到選擇的日期呢?這里通過document對象的 getElementsByName函數來找標簽屬性name="day"的標簽。
6、找到這些標簽之后,接下來判斷上又遇到了麻煩。對于標簽內容可以用 .innerText(只是文本而不包含其他標簽),而對于網頁的內容則是.innerHTML。另外,對于選擇的日期值,可以用.value屬性 來取。
7、接下來的一個問題是,既要取標簽內容,又要取所選擇的日期值,如何區分呢?
可以用.tagName屬性來判斷,如果是INPUT,那么用.value取值,如果是TD,那么用.innerText。
8、假設沒有選擇日期,那么獲取到的value是什么呢?實驗證明返回了空串,而不是null。如果變量s初始化,那么s的值就是Undefined。
9、字符串的賦值可以用+=運算符,那么代碼s=s+xx ,可以改成s+=xx,這種寫法普遍的寫法,現在連sql語句也是支持的
10、對于代碼中的if else語句,著實覺得寫著不方便,盡然沒有elseif或者elif,而是一定要else,然后再寫if -else。。。
11、i%2 == 1這個是因為i是0、1、2、3,當到了i=1時,才在變量s中加上分號,效果:
開始日期: 2017-01-03;結束日期:2017-01-19;
12、輸出結果放哪里?這里在報表中增加了1行:span標簽,name=sp,一開始不會顯示出來。當然,要把輸出作為這個標簽的內容,首先要找到標簽,這里通過getElementById來找到標簽,然后把輸出結果放到.innerHTML中就可以了。
PS:這里再為大家推薦幾款比較實用的天數計算在線工具供大家使用:
在線日期/天數計算器:
http://tools.VeVB.COm/jisuanqi/date_jisuanqi
在線日期計算器/相差天數計算器:
http://tools.VeVB.COm/jisuanqi/datecalc
在線日期天數差計算器:
http://tools.VeVB.COm/jisuanqi/onlinedatejsq
在線天數計算器:
http://tools.VeVB.COm/jisuanqi/datejsq
更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《JavaScript時間與日期操作技巧總結》、《JavaScript查找算法技巧總結》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數學運算用法總結》
希望本文所述對大家JavaScript程序設計有所幫助。
新聞熱點
疑難解答