是否有一个NATIVE jQuery方法来提取单个QueryString项?

时间:2013-10-17 21:08:42

标签: javascript jquery query-string jscript

给出这样的网址:http://mydomain.com/mypage.asp?Animal=Elephant

VBScript提供了一种使用Request对象在QueryString中获取单个项目的好方法:

dim animal = Request.QueryString["Animal"]

我已经看到一些相当复杂的JavaScript浮出来做类似的事情,但我希望jQuery库有一个功能来做到这一点,而不必重新发明一些轮子。我在jQuery书中找不到它,也没有在jQuery网站上找到它。

我什么时候吠叫树?是否有NATIVE jQuery函数来执行此操作?

请注意,我的问题是要求存在 NATIVE JQUERY FUNCTION 以获取与上面提供的VBScript相当的QueryString。这个问题的一线解决方案。如:

var animal = $.getParameterByName("Animal");

我的问题只有两个可能的答案。他们是:

  1. 不,没有描述的本机单行jQuery函数,或
  2. 是的,有一个原生的单行jQuery函数,如上所述,这里是......
  3. 我知道如何获取整个QueryString以及如何使用Javascript解析它 - 我不知道是否有一个jQuery方法或函数可以完成我的要求。

2 个答案:

答案 0 :(得分:1)

“不,没有所描述的原生单行jQuery函数”

然而,改变它很容易。

(function($){
    function getParameterByName(name) {
        name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
        var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
            results = regex.exec(location.search);
        return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
    }
    $.getParameterByName = getParameterByName;
})(jQuery);

在jquery之后包含在头部中,你现在可以简单地做:

var animal = $.getParameterByName("Animal");

根据名称获取参数的方法:How can I get query string values in JavaScript?

答案 1 :(得分:0)

我知道这不会回答你的问题,但我同意VBScript的方式感觉很好。

window.Request = {
  QueryString: {}
};

window.location.search.split('?')[1].split('&').forEach(function(kv){
  Request.QueryString[kv.split('=')[0]] = decodeURIComponent(
    kv.split('=')[1].replace(/\+/g, " ")
  );
});

var animal = Request.QueryString['animal'];