给出这样的网址: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");
我的问题只有两个可能的答案。他们是:
我知道如何获取整个QueryString以及如何使用Javascript解析它 - 我不知道是否有一个jQuery方法或函数可以完成我的要求。
答案 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'];