取url参数的方法

经过大神指点后又将代码整理了一下,如下:
这个方法的核心思想是:把url里的参数转换成json对象

function uid(string) {
    //判断有没有参数,没有就返回空
    if(string.indexOf('=') < 0) {
        return {};
    }            
    var params = string.substr(string.indexOf('?') + 1, string.length);
    
    //页面有跳转的时候,url会出现#号,可以使用html锚点调试,清除#号以及后面的锚点,保证获取的参数是正确的
    if(params.indexOf('#') > 0){
        params = params.substr(0, params.indexOf("#"));            
    }
    var obj = {},                          //定义空对象,json对象格式,用于存储转换后的参数对象
        pairs = params.split('&'),         //把参数分割成键值对形式的数组
        d = decodeURIComponent;            //d decodeURIComponent 方法的别名,下面有调用 
    $.each(pairs, function(i, pair) {
        var pairArray = pair.split('=');   //把参数分割成key,value的形式
        var name = d(pairArray[0]);        //name是url里参数的键
        var value = d(pairArray[1]);       //value是url里参数的值
        obj[name] = value;
    });
    return obj;
}

//注:这里的string在外面没有定义,是因为由内部定义的,在需要的时候自动创建(相当于局部变量)

 

posted @ 2016-09-19 22:11  戴眼镜的小女孩|  阅读(601)  评论(0编辑  收藏  举报