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图像处理思路及实现代码
Dec 25 Javascript
jquery插件validate验证的小例子
May 08 Javascript
jquery实现简单的拖拽效果实例兼容所有主流浏览器(优化篇)
Jun 28 Javascript
解析offsetHeight,clientHeight,scrollHeight之间的区别
Nov 20 Javascript
基于JavaScript短信验证码如何实现
Jan 24 Javascript
jquery注册文本框获取焦点清空,失去焦点赋值的简单实例
Sep 08 Javascript
javascript prototype原型详解(比较基础)
Dec 26 Javascript
jQuery实现的仿百度,仿谷歌搜索下拉框效果示例
Dec 30 Javascript
微信小程序中button组件的边框设置的实例详解
Sep 27 Javascript
详解webpack4升级指南以及从webpack3.x迁移
Jun 12 Javascript
在vue2.0中引用element-ui组件库的方法
Jun 21 Javascript
vue data引入本地图片的两种方式小结
Nov 13 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通过array_merge()函数合并关联和非关联数组的方法
2015/03/18 PHP
Yii实现的多级联动下拉菜单
2016/07/13 PHP
CI框架使用composer安装的依赖包步骤与方法分析
2016/11/21 PHP
基于JQuery的访问WebService的代码(可访问Java[Xfire])
2010/11/19 Javascript
JQuery UI的拖拽功能实现方法小结
2012/03/14 Javascript
jquery 动态创建元素的方式介绍及应用
2013/04/21 Javascript
node.js中使用socket.io制作命名空间
2014/12/15 Javascript
JavaScript提高性能知识点汇总
2016/01/15 Javascript
AngularJS 中文API参考手册
2016/07/28 Javascript
js控制按钮,防止频繁点击响应的实例
2017/02/15 Javascript
浅谈jquery拼接字符串效率比较高的方法
2017/02/22 Javascript
微信小程序 首页制作简单实例
2017/04/07 Javascript
Vue组件之Tooltip的示例代码
2017/10/18 Javascript
浅析Vue实例以及生命周期
2018/08/14 Javascript
使用vuepress搭建静态博客的示例代码
2019/02/14 Javascript
js和jquery判断数据类型的4种方法总结
2020/08/28 jQuery
微信小程序调用后台service教程详解
2020/11/06 Javascript
element-ui点击查看大图的方法示例
2020/12/14 Javascript
Vue 组件注册全解析
2020/12/17 Vue.js
python在windows和linux下获得本机本地ip地址方法小结
2015/03/20 Python
对于Python编程中一些重用与缩减的建议
2015/04/14 Python
python检测某个变量是否有定义的方法
2015/05/20 Python
Python使用matplotlib实现在坐标系中画一个矩形的方法
2015/05/20 Python
Python中字符串的格式化方法小结
2016/05/03 Python
Django原生sql也能使用Paginator分页的示例代码
2017/11/15 Python
使用pyqt5 tablewidget 单元格设置正则表达式
2019/12/13 Python
Python requests接口测试实现代码
2020/09/08 Python
python 实现超级玛丽游戏
2020/11/25 Python
大型晚会策划方案
2014/02/06 职场文书
办公室主任职责范本
2014/03/07 职场文书
优秀乡村医生事迹材料
2014/05/28 职场文书
综合测评个人总结
2015/03/03 职场文书
实习单位推荐信
2015/03/27 职场文书
爸爸的三轮车观后感
2015/06/16 职场文书
Python实现byte转integer
2021/06/03 Python
MySql 缓存查询原理与缓存监控和索引监控介绍
2021/07/02 MySQL