文档库 最新最全的文档下载
当前位置:文档库 › JS+jQuery 获取url参数

JS+jQuery 获取url参数

JS+jQuery 获取url参数
JS+jQuery 获取url参数

JS/jQuery 获取url参数

js代码:

function GetQueryString(name)

{

var reg = new RegExp(“(^|&)”+ name +”=([^&]*)(&|$)”);

var r = window.location.search.substr(1).match(reg);

if (r!=null) return unescape(r[2]); return null;

}

URL的参数&参数名1=XXXX&参数名 2=XXXX&参数名3=XXXX

alert(GetQueryString(“参数名1″));

alert(GetQueryString(”参数名2″));

alert(GetQueryString(“参数名3″));

jquery代码:

把下面代码。放到js文件中

/**

* jQuery.query – Query String Modification and Creation for jQuery

* Written by Blair Mitchelmore (blair DOT mitchelmore AT gmail DOT com) * Licensed under the WTFPL (https://www.wendangku.net/doc/a81102272.html,/wtfpl/).

* Date: 2009/8/13

*

* @author Blair Mitchelmore

* @version 2.1.6

*

**/

new function(settings) {

// Various Settings

var $separator = settings.separator || ‘&’;

var $spaces = settings.spaces === false ? false : true;

var $suffix = settings.suffix === false ? ” : ‘[]‘;

var $prefix = settings.prefix === false ? false : true;

var $hash = $prefix ? settings.hash === true ? “#” : “?” : “”; var $numbers = settings.numbers === false ? false : true;

jQuery.query = new function() {

var is = function(o, t) {

return o != undefined && o !== null && (!!t ? o.constructor == t : true); };

var parse = function(path) {

var m, rx = /\[([^[]*)\]/g, match = /^([^[]+?)(\[.*\])?$/.exec(path), base = match[1], tokens = [];

while (m = rx.exec(match[2])) tokens.push(m[1]);

return [base, tokens];

};

var set = function(target, tokens, value) {

var o, token = tokens.shift();

if (typeof target != ‘object’) target = null;

if (token === “”) {

if (!target) target = [];

if (is(target, Array)) {

target.push(tokens.length == 0 ? value : set(null, tokens.slice(0), value));

} else if (is(target, Object)) {

var i = 0;

while (target[i++] != null);

target[--i] = tokens.length == 0 ? value : set(target[i], tokens.slice(0), value);

} else {

target = [];

target.push(tokens.length == 0 ? value : set(null, tokens.slice(0), value));

}

} else if (token && token.match(/^\s*[0-9]+\s*$/)) {

var index = parseInt(token, 10);

if (!target) target = [];

target[index] = tokens.length == 0 ? value : set(target[index], tokens.slice(0), value);

} else if (token) {

var index = token.replace(/^\s*|\s*$/g, “”);

if (!target) target = {};

if (is(target, Array)) {

var temp = {};

for (var i = 0; i < target.length; ++i) {

temp[i] = target[i];

}

target = temp;

}

target[index] = tokens.length == 0 ? value : set(target[index], tokens.slice(0), value);

} else {

return value;

}

return target;

};

var queryObject = function(a) {

var self = this;

self.keys = {};

if (a.queryObject) {

jQuery.each(a.get(), function(key, val) {

self.SET(key, val);

});

} else {

jQuery.each(arguments, function() {

var q = “” + this;

q = q.replace(/^[?#]/,”); // remove any leading ? || #

q = q.replace(/[;&]$/,”); // remove any trailing & || ;

if ($spaces) q = q.replace(/[+]/g,’‘); // replace +’s with spaces

jQuery.each(q.split(/[&;]/), function(){

var key = decodeURIComponent(this.split(‘=’)[0] || “”);

var val = decodeURIComponent(this.split(‘=’)[1] || “”);

if (!key) return;

if ($numbers) {

if (/^[+-]?[0-9]+\.[0-9]*$/.test(val)) // simple float regex

val = parseFloat(val);

else if (/^[+-]?[0-9]+$/.test(val)) // simple int regex

val = parseInt(val, 10);

}

val = (!val && val !== 0) ? true : val;

if (val !== false && val !== true && typeof val != ‘number’)

val = val;

self.SET(key, val);

});

});

}

return self;

};

queryObject.prototype = {

queryObject: true,

has: function(key, type) {

var value = this.get(key);

return is(value, type);

},

GET: function(key) {

if (!is(key)) return this.keys;

var parsed = parse(key), base = parsed[0], tokens = parsed[1]; var target = this.keys[base];

while (target != null && tokens.length != 0) {

target = target[tokens.shift()];

}

return typeof target == ‘number’ ? target : target || “”; },

get: function(key) {

var target = this.GET(key);

if (is(target, Object))

return jQuery.extend(true, {}, target);

else if (is(target, Array))

return target.slice(0);

return target;

},

SET: function(key, val) {

var value = !is(val) ? null : val;

var parsed = parse(key), base = parsed[0], tokens = parsed[1]; var target = this.keys[base];

this.keys[base] = set(target, tokens.slice(0), value);

return this;

},

set: function(key, val) {

return this.copy().SET(key, val);

},

REMOVE: function(key) {

return this.SET(key, null).COMPACT();

},

remove: function(key) {

return this.copy().REMOVE(key);

},

EMPTY: function() {

var self = this;

jQuery.each(self.keys, function(key, value) {

delete self.keys[key];

});

return self;

},

load: function(url) {

var hash = url.replace(/^.*?[#](.+?)(?:\?.+)?$/, “$1″);

var search = url.replace(/^.*?[?](.+?)(?:#.+)?$/, “$1″);

return new queryObject(url.length == search.length ? ” : search, url.length == hash.length ? ” : hash);

},

empty: function() {

return this.copy().EMPTY();

},

copy: function() {

return new queryObject(this);

},

COMPACT: function() {

function build(orig) {

var obj = typeof orig == “object” ? is(orig, Array) ? [] : {} : orig; if (typeof orig == ‘object’) {

function add(o, key, value) {

if (is(o, Array))

o.push(value);

else

o[key] = value;

}

jQuery.each(orig, function(key, value) {

if (!is(value)) return true;

add(obj, key, build(value));

});

}

return obj;

}

this.keys = build(this.keys);

return this;

},

compact: function() {

return this.copy().COMPACT();

},

toString: function() {

var i = 0, queryString = [], chunks = [], self = this;

var encode = function(str) {

str = str + “”;

if ($spaces) str = str.replace(/ /g, “+”);

return encodeURIComponent(str);

};

var addFields = function(arr, key, value) {

if (!is(value) || value === false) return;

var o = [encode(key)];

if (value !== true) {

o.push(“=”);

o.push(encode(value));

}

arr.push(o.join(“”));

};

var build = function(obj, base) {

var newKey = function(key) {

return !base || base == “” ? [key].join(“”) : [base, "[", key, "]“].join(“”);

};

jQuery.each(obj, function(key, value) {

if (typeof value == ‘object’)

build(value, newKey(key));

else

addFields(chunks, newKey(key), value);

});

};

build(this.keys);

if (chunks.length > 0) queryString.push($hash);

queryString.push(chunks.join($separator));

return queryString.join(“”);

}

};

return new queryObject(location.search, location.hash);

};

}(jQuery.query || {}); // Pass in jQuery.query as settings object

如果想获取test,则可以引入插件后,

用如下方法获取:

var test = $.query.get(‘test’);

如果参数有多个相同的名称,则可以这样:

var arr = $.query.get(‘testy’);

输出: [ 值1 , 值2, 值3...]

如果要获取多个相同名称中的某一个,可以这样:

var arrayElement = $.query.get(‘testy[1]‘);

此插件不仅能获取参数,也能设置参数。

设置一个参数:

var newUrl = $.query.set(“section”, 5).toString();

输出:“?section=5″

设置两个参数:

var newUrl = $.query.set(“section”, 5).set(“action”, “do”).toString(); 输出 : “?action=do§ion=5″

删除一个参数:

var oldQueryAgain = $.query.REMOVE(“type”);

清空所有参数:

var emptyQuery = $.query.empty();

复制所有参数:

var stillTheSame = $.query.copy();

相关文档