2009-07-28 29 views
1

基本上我有一個鏈接,像這樣:如何使用jQuery從網址抓取變量?

<a href="file.php?value=this&something=so&please=help">special link</a> 

,當我點擊它,我希望能夠方便地引用變量。

因此,例如像

$(document).ready(function){ 

    $('a').click(function(){ 

     var myvalue = $(this).attr('href........ 

     /// and thats as far as I know! 

     return false; 

    }); 

}); 

如何訪問這些變量?

回答

0

沒有什麼內置的jQuery可以讓你做到這一點。您可以使用plugin解析網址。所以基本上你的代碼可能是這樣的:

$('a').click(function(evt) { 
    var myValue = jQuery.url.setUrl(this.href).param('value'); 
    evt.preventDefault(); 
}); 
1

location.search是什麼,我會用,不知道爲什麼你需要jQuery的。此外,如果你正在處理鏈接,請嘗試使用link.search

這個快速片斷作品

<a href='http://www.google.com/?id=asdfasdfasdf' id='tes1'>asdfasdf</a> 
<input type='button' onclick='alert(document.getElementById("tes1").search)'> 
1

要僅僅抓住他們,你需要這樣的事:

var urlstring = window.location.search; 

操縱它們, SO上已經有答案,例如here

1

如果你想有一個非常好的功能,把一個URL,並給你所有的部分,我推薦的日益流行PHP.JS功能parse_url

3

的jQuery沒有讀取內置的查詢字符串支持(或如果是這樣,我從來沒有發現它)。

您可以手動處理document.location.search,但是您必須手動將其拆分爲&(然後再次打開=)以及url解碼。

然而,也有一些jQuery插件來爲你做這個:

奇怪的是,jQuery有一個內置的功能做相反的... $.param(obj)會將數組或javascript對象轉換爲查詢字符串。

1

我正在使用一個簡單的函數,如上面建議的 - 拆分和符號和再次等號。

var urlObj = location.search 
var params = urlObj.slice(1).split("&") 
var map = {} 
for (var i=0; i < params.length; i++){ 
    var item = params[i] 
    var key = item.match(/^.*\=/)[0].replace(/\=/,"") 
    var value = item.match(/\=.*$/)[0].replace(/\=/,"") 
    map[key] = value 
}