2009-09-13 74 views
2

假設你有一個網址:使用Javascript/jQuery獲取給定URL參數值的最佳方法是什麼?

http://www.example.com/whatever?this=that&where=when 

你會如何提取where參數的值(在這種情況下when)?

這是我想出了 - 我不知道是否有更好的解決方案:

$.fn.url_param_value = function(param) { 
    var url = $(this).attr('href'); 
    var regex = new RegExp(param + "="); 

    return $.grep(url.split("?")[1].split("&"), function(a) { 
    return a.match(regex); 
    })[0].split("=")[1]; 
} 

回答

5

使用jquery.query,玩得開心:)

,你可以簡單地使用:

var w = $.query.get("where"); 
+0

TheVillageIdiot,是這個主要的jQuery庫的一部分。相當有用... – 2009-09-13 05:22:34

+0

謝謝@David我爲它使用了單獨的插件:( – TheVillageIdiot 2009-09-13 05:38:22

+0

查詢字符串對象是一個擴展創建一個單例查詢字符串對象,以便快速和可讀的查詢字符串修改和創建此插件提供了一種簡單的方法頁面的查詢字符串並用少量代碼創建此修改版本。 – ranonE 2009-09-13 07:30:05

1

如果你沒有jQuery,這裏是我使用的函數:

function urlParam(name, w){ 
    w = w || window; 
    var rx = new RegExp('[\&|\?]'+name+'=([^\&\#]+)'); 
    var val = w.location.href.match(rx); 
    return !val ? '':val[1]; 
} 

如果您需要讀取iframe參數,w是可選參數(默認爲窗口)。

0

我使用JavaScript的此位從Netlobo.com

function gup(name) 
{ 
    name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); 
    var regexS = "[\\?&]"+name+"=([^&#]*)"; 
    var regex = new RegExp(regexS); 
    var results = regex.exec(window.location.href); 
    if(results == null) 
    return ""; 
    else 
    return results[1]; 
} 

,或者如果你正在尋找一個插件,嘗試jQuery URL Parser

*編輯:嗯,納米我猜TheVillageIdiot的建議是最簡單最好& jQuery:P ... YAY,今天我學到了一些新東西:)但是你仍然應該看看這個插件,它很好,它會返回URL的any part,包括字符串中的數據。

相關問題