例如 当前你的url是:
http://www.111cn.net/ ?test=1&kk=2
如果想获取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();
看一款实例
$.request = (function () {
var apimap = {};
function request(querystr) {
var api = {};
if (apimap[querystr]) {
return apimap[querystr];
}
api.querystring = (function () {
var urlparams = {};
var e,
d = function (s) { return decodeuricomponent(s.replace(/+/g, " ")); },
q = querystr.substring(querystr.indexof('?') + 1),
r = /([^&=]+)=?([^&]*)/g;
while (e = r.exec(q))
urlparams[d(e[1])] = d(e[2]);return urlparams;
})();
api.geturl = function () {
var url = querystr.substring(0, querystr.indexof('?') + 1);
for (var p in api.querystring) {
url += p + '=' + api.querystring[p] + "&";
}
if (url.lastindexof('&') == url.length - 1) {
return url.substring(0, url.lastindexof('&'));
}
return url;
}
apimap[querystr] = api;
return api;
}
$.extend(request, request(window.location.href));
return request;
})();
来现在来看一个详细的实例
比如一条url:http://127.0.0.1/index.html?id=999&type=2
那么在index.html中这样写就可以获得id和type的值
var id=$.query.get("id"); // id=999
var type=$.query.get("type"); // type=2
jquery代码
new function(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(/^[?#]/,'');
q = q.replace(/[;&]$/,'');
if ($spaces) q = q.replace(/[+]/g,' ');
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))
val = parsefloat(val);
else if (/^[+-]?[0-9]+$/.test(val))
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;
},
首页 1 2 末页