[javascript] 取得網址 url 的query參數
因為偶爾就會用到,所以寫了一個function來取得網址上的 query parameter,也就是PHP裡的全域變數 $_GET
基本上是一樣的,會回傳一個物件 params={param_name1:param_value1,param_name2:param_value2,...} ,可以透過 params[param_name]來取值
因為偶爾就會用到,所以寫了一個function來取得網址上的 query parameter,也就是PHP裡的全域變數 $_GET
基本上是一樣的,會回傳一個物件 params={param_name1:param_value1,param_name2:param_value2,...} ,可以透過 params[param_name]來取值
因為偶爾還是會用到,做個筆記,參考自這裡
主要是會用到window.location這個物件,個人比較常用的是以下兩個
var pathname = window.location.pathname; // Returns path only,如 /abc/def.html var url = window.location.href; // Returns full URL,如 http://yosia.net:80/abc/def.html
其他可以這樣替換:
有時為了讓數字更具有可讀性,尤其是需要呈現比較大的數字時,我們會需要加上千分位號,基本上這個做一個函數來做這件事情比較快,函數如下:
function number_format(n) { n += ""; var arr = n.split("."); var re = /(\d{1,3})(?=(\d{3})+$)/g; return arr[0].replace(re,"$1,") + (arr.length == 2 ? "."+arr[1] : ""); }
Ajax讓網路的世界就走入了web 2.0的時代,不過還是有時候有些瀏覽器不支援javascript,雖然有時候是刻意被關掉的,那麼要怎麼讓我們的ajax按鈕不受影響呢?
答案是 ─ 用連結來製作按鈕。
當瀏覽器不支援javascript時,就透過連結到ajax本來要取用資料的頁面,或者也可以讓連結到提示訪客該換瀏覽器開啟javascript支援了
方法如下:
<a href="obj.html">按鈕</a>
$('a').click(function(e){ //加上以下這一行,當瀏覽器支援javascript時可以避免跳頁,即我們原先需要的ajax功能 e.preventDefault(); ... });
jQuery 提供了滿便捷的選擇器來選擇DOM元素,只要用 $(".test"),就可以把所有 class="test"的元素一次取出。
不過javascript也有類似的選擇器函數,querySelector 以及querySeloectorAll。用法範例及比較如下:
Javascript提供了一些常見的數學函數,包含亂數(random)、無條件進位(ceil)、無條件捨去(floor)、指數(power)、平方根(sqrt)、絕對值(abs)...詳細函數可以在這裡查詢,以下僅介紹部分常用函數
Math.random(),回傳值範圍為 0 <= x < 1
Math.round(x),回傳 x 四捨五入後的整數值。
Math.floor(x),回傳 x 無條件捨去後的整數值。
Math.ceil(x),回傳 x 無條件進位後的整數值。
Math.abs(x),回傳 x 的絕對值。
Math.pow(x,n),回傳 x 的 n 次方。
Math.pow(x),回傳 x 的平方根。
在Javascript中 有一個專門用來四捨五入的函數 Math.round(),不過這個函數有個缺點,就是只能四捨五入到整數,如果要指定小數點位數來四捨五入的話,就必須自己寫函數囉。
自製的函數參考如下:
function floatRound(num, pos){ return (Math.round( num * Math.pow(10,pos) ) / Math.pow(10,pos)).toFixed(pos); }
原理說明:假設要四捨五入到小數點後n位,就先將目標數字乘上10的n次方後,四捨五入到整數,然後再除回來並指定位數
var now= new Date(); // 月份需要+1 var month=now.getMonth()+1; var day=now.getDate(); var year=now.getFullYear(); var h=now.getHours(); var i=now.getMinutes(); var s=now.getSeconds(); //取得目前的timestamp var tsp=now.getTime(); document.write('今天的日期是:'+month + '-' + day + '-' + year); document.write('目前的時間是:'+h+ ':' + i+ ':' + s); document.write('目前的時間戳記是:'+tsp);
var string1='2014-01-05';
有時候為了格式的整齊性,我們會需要讓數字補0,例如日期 2014-3-4 要變成 2014-03-04
不過javascript並沒有類似php一般有提供 %2d之類的語法可以讓我們自動補0,所以就需要自己寫函數囉!
函數如下:
Javascript可以簡單的偵測出瀏覽器的版本,語法如下:
var ver=navigator.userAgent; document.write(ver);
結果如下: