2009-07-28 20 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 
}