js获取url参数代码实例分享(JS操作URL)


Posted in Javascript onDecember 13, 2013

代码很简单,主要一个思路是把url参数解析为js对象,再做增、删、改、查操作就很方便了~,这里做笔记。

var LG=(function(lg){
    var objURL=function(url){
        this.ourl=url||window.location.href;
        this.href="";//?前面部分
        this.params={};//url参数对象
        this.jing="";//#及后面部分
        this.init();
    }
    //分析url,得到?前面存入this.href,参数解析为this.params对象,#号及后面存入this.jing
    objURL.prototype.init=function(){
        var str=this.ourl;
        var index=str.indexOf("#");
        if(index>0){
            this.jing=str.substr(index);
            str=str.substring(0,index);
        }
        index=str.indexOf("?");
        if(index>0){
            this.href=str.substring(0,index);
            str=str.substr(index+1);
            var parts=str.split("&");
            for(var i=0;i<parts.length;i++){
                var kv=parts[0].split("=");
                this.params[kv[0]]=kv[1];
            }
        }
        else{
            this.href=this.ourl;
            this.params={};
        }
    }
    //只是修改this.params
    objURL.prototype.set=function(key,val){
        this.params[key]=val;
    }
    //只是设置this.params
    objURL.prototype.remove=function(key){
        this.params[key]=undefined;
    }
    //根据三部分组成操作后的url
    objURL.prototype.url=function(){
        var strurl=this.href;
        var objps=[];//这里用数组组织,再做join操作
        for(var k in this.params){
            if(this.params[k]){
                objps.push(k+"="+this.params[k]);
            }
        }
        if(objps.length>0){
            strurl+="?"+objps.join("&");
        }
        if(this.jing.length>0){
            strurl+=this.jing;
        }
        return strurl;
    }
    //得到参数值
    objURL.prototype.get=function(key){
        return this.params[key];
    }    
    lg.URL=objURL;
    return lg;
}(LG||{}));

LG只是我个人共同JS的名称空间,无他。调用:

var myurl=new LG.URL("http://www.baidu.com?a=1");    myurl.set("b","hello"); //添加了b=hello
    alert (myurl.url());
    myurl.remove("b"); //删除了b
    alert(myurl.get ("a"));//取参数a的值,这里得到1
    myurl.set("a",23); //修改a的值为23
    alert (myurl.url());
Javascript 相关文章推荐
Javascript - HTML的request类
Jan 09 Javascript
JavaScript中变量提升 Hoisting
Jul 03 Javascript
node.js中的url.format方法使用说明
Dec 10 Javascript
基于Jquery实现万圣节快乐特效
Nov 01 Javascript
全面解析Bootstrap中transition、affix的使用方法
May 30 Javascript
JS添加或修改控件的样式(Class)实现方法
Oct 15 Javascript
JS基于正则表达式的替换操作(replace)用法示例
Apr 28 Javascript
改变vue请求过来的数据中的某一项值的方法(详解)
Mar 08 Javascript
Vue弹出菜单功能的实现代码
Sep 12 Javascript
vue实现瀑布流组件滑动加载更多
Mar 10 Javascript
使用Taro实现小程序商城的购物车功能模块的实例代码
Jun 05 Javascript
JavaScript图像放大镜效果实现方法详解
Jun 28 Javascript
js获取html页面节点方法(递归方式)
Dec 13 #Javascript
jquery 合并内容相同的单元格(示例代码)
Dec 13 #Javascript
javascript读取xml实现javascript分页
Dec 13 #Javascript
同域jQuery(跨)iframe操作DOM(示例代码)
Dec 13 #Javascript
javascript分页代码实例分享(js分页)
Dec 13 #Javascript
jquery 操作iframe的几种方法总结
Dec 13 #Javascript
异步动态加载JS并运行(示例代码)
Dec 13 #Javascript
You might like
PHP中的float类型使用说明
2010/07/27 PHP
php处理文件的小例子(解压缩,删除目录)
2013/02/03 PHP
ucenter通信原理分析
2015/01/09 PHP
php获取ajax的headers方法与内容实例
2017/12/27 PHP
xml分页+ajax请求数据源+dom取结果实例代码
2008/10/31 Javascript
用JQuery模仿淘宝的图片放大镜显示效果
2011/09/15 Javascript
Firefox中beforeunload事件的实现缺陷浅析
2012/05/03 Javascript
jquery浏览器滚动加载技术实现方案
2014/06/03 Javascript
Jquery对select的增、删、改、查操作
2015/02/06 Javascript
jQuery使用CSS()方法给指定元素同时设置多个样式
2015/03/26 Javascript
js实现随机抽选效果、随机抽选红色球效果
2017/01/13 Javascript
JS原型与原型链的深入理解
2017/02/15 Javascript
jquery版轮播图效果和extend扩展
2017/07/18 jQuery
Vue2.0用 watch 观察 prop 变化(不触发)
2017/09/08 Javascript
JavaScript 类的封装操作示例详解
2020/05/16 Javascript
详解vue3.0 diff算法的使用(超详细)
2020/07/01 Javascript
jQuery实现日历效果
2020/09/11 jQuery
python监控网卡流量并使用graphite绘图的示例
2014/04/27 Python
修改Python的pyxmpp2中的主循环使其提高性能
2015/04/24 Python
Using Django with GAE Python 后台抓取多个网站的页面全文
2016/02/17 Python
python 找出list中最大或者最小几个数的索引方法
2018/10/30 Python
几个适合python初学者的简单小程序,看完受益匪浅!(推荐)
2019/04/16 Python
Python内置加密模块用法解析
2019/11/25 Python
如何用OpenCV -python3实现视频物体追踪
2019/12/04 Python
django xadmin 管理器常用显示设置方式
2020/03/11 Python
keras中epoch,batch,loss,val_loss用法说明
2020/07/02 Python
Python word文本自动化操作实现方法解析
2020/11/05 Python
python中实现栈的三种方法
2020/12/19 Python
汉米尔顿手表官网:Hamilton
2020/09/13 全球购物
学生个人求职自荐信格式
2013/09/23 职场文书
投标单位介绍信
2014/01/09 职场文书
2015年七夕情人节感言
2015/08/03 职场文书
大学生团支书竞选稿
2015/11/21 职场文书
2016年秋季开学典礼新闻稿
2015/11/25 职场文书
初一英语教学反思
2016/02/15 职场文书
班级元旦晚会开幕词
2016/03/04 职场文书