如何使用jQuery从url中获取变量?

时间:2009-07-28 13:51:09

标签: 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;

    });

});

如何访问这些变量?

6 个答案:

答案 0 :(得分:3)

jQuery不支持读取内置的查询字符串(如果确实如此,我从未找到它)。

您可以手动处理document.location.search,但是您必须手动将其拆分为&amp; (然后再次=)以及url解码它。

但是,有一些jQuery插件可以帮到你:

奇怪的是,jQuery有一个内置函数来执行相反的操作... $.param(obj)会将数组或javascript对象转换为查询字符串。

答案 1 :(得分: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)'>

答案 2 :(得分:1)

要抓住它们,你需要这样的东西:

var urlstring = window.location.search;

要操纵它们,SO上已有答案,例如here

答案 3 :(得分:1)

如果你想要一个非常好的功能来获取一个URL并给你所有的部分,我推荐一个流行的PHP.JS函数parse_url

答案 4 :(得分: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
}

答案 5 :(得分:0)

没有任何内置的jQuery可以让你这样做。您可以使用plugin来解析网址。所以基本上你的代码看起来像:

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