jquery 获取地址栏网址url参数(1/2)

例如 当前你的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&section=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 末页

时间: 2024-09-01 00:03:09

jquery 获取地址栏网址url参数(1/2)的相关文章

javascript/jquery获取地址栏url参数的方法

 本篇文章主要是对javascript/jquery获取地址栏url参数的方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 使用jquery获取url以及使用jquery获取url参数是我们经常要用到的操作   1.jquery获取url很简单,代码如下  代码如下: window.location.href;    其实只是用到了javascript的基础的window对象,并没有用jquery的知识   2.jquery获取url参数比较复杂,要用到正则表达式,所以学好javas

javascript/jquery获取地址栏url参数的方法_javascript技巧

使用jquery获取url以及使用jquery获取url参数是我们经常要用到的操作 1.jquery获取url很简单,代码如下 复制代码 代码如下: window.location.href;  其实只是用到了javascript的基础的window对象,并没有用jquery的知识 2.jquery获取url参数比较复杂,要用到正则表达式,所以学好javascript正则式多么重要的事情 首先看看单纯的通过javascript是如何来获取url中的某个参数 复制代码 代码如下: function

jQuery获取地址栏参数插件(模仿C#)_jquery

复制代码 代码如下: $.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 decodeURICompon

asp.net获取当前网址url的各种属性(文件名、参数、域名 等)的代码_实用技巧

设当前页完整地址是:http://www.jb51.net/aaa/bbb.aspx?id=5&name=kelli "http://"是协议名 "www.jb51.net"是域名 "aaa"是站点名 "bbb.aspx"是页面名(文件名) "id=5&name=kelli"是参数 [1]获取 完整url (协议名+域名+站点名+文件名+参数) 复制代码 代码如下: string url=R

在JavaScript中获取请求的URL参数[正则]_javascript技巧

第一种方法:,代码比较专业 推荐 复制代码 代码如下: <script> function GetLocationParam(param){ var request = { QueryString : function(val) { var uri = window.location.search; var re = new RegExp("" +val+ "=([^&?]*)", "ig"); return ((uri.ma

在JavaScript中获取请求的URL参数_javascript技巧

当然我们可以在后台中获取参数的值,然后在前台js代码中获取变量的值,具体做法请参考我的这篇文章:JavaScript获取后台C#变量以及调用后台方法. 其实我们也可以直接在js中获取请求的参数的值,通过使用window.location.search可以获取到当前URL的?号开始的字符串,如前面的链接获取到的search为?id=001.再对获取的字符串进行处理,就可以获取到参数的值了. 复制代码 代码如下: function getUrlParam(name) { var reg = new

JS 正则表达式(学习笔记2)匹配网址url参数

. 匹配除换行符的任意字符 \w 匹配字母,数字,下划线,汉字 \s 匹配任意空白符 \d 匹配数字 ^ 匹配字符开始位置 $ 匹配字符结束位置 * 重复零次或更多次 + 重复一次或更多次 ? 重复零次或一次 {n} 重复N次 {n,} 重复N次或更多次 {n,m} 重复N次或m次url参数匹配的问题 <script type="text/javascript"> var str="http://ladjkfldfjlfjlafjlfk/-1-1.html?sdl

jQuery获取地址栏中的链接参数实例

假设页面的地址是这样子的./p/165 ,那么我要获取最后的一个数字165,可以通过这样子的代码  代码如下 复制代码 var url= window.location.href; var index = url.substring(url.lastIndexOf('/') + 1); 但是这样子有缺陷,假如我获取到的地址不是这样子的形式,而是/tools的话,那么这个index的值就不是一个数字了. 解决方案 下面这种可能会更好呢?  代码如下 复制代码 var lastBit = url.s

使用JavaScript获取地址栏参数的方法

 代码如下: /**  *  获取地址栏参数  *  * @example GetUrlString('id')  *  * @desc    调用时加上判断,保证程序不会出错  *             var myurl = GetUrlString('id');  *             if (myurl != null && myurl.toString().length > 1) {  *                  alert(GetUrlString(&q