直接上代码
// 获取当前窗口url中param参数的值 function get_param(param){ var query = location.search.substring(1).split('&'); for(var i=0;i<query.length;i++){ var kv = query[i].split('='); if(kv[0] == param){ return kv[1]; } } return null; } // 设置当前窗口url中param的值 function set_param(param,value){ var query = location.search.substring(1); var p = new RegExp("(^|&"+param+")=[^&]*"); if(p.test(query)){ query = query.replace(p,"$1="+value); location.search = '?'+query; }else{ if(query == ''){ location.search = '?'+param+'='+value; }else{ location.search = '?'+query+'&'+param+'='+value; } } }
注意location.search获取到的是url中?开始到#之间的内容(包含?但不包含#)。
如果是设置指定url的param值,可以用下面的函数:
// 设置指定url中param的值,返回处理后的url function set_url_param(url,param,value){ if(url.indexOf('?') != -1){ var p = new RegExp("(\?|&"+param+")=[^&]*"); if(p.test(url)){ url = url.replace(p,"$1="+value); }else{ url = url+'&'+param+'='+value; } }else{ url = url+'?'+param+'='+value; } return url; }
再上一个翻页代码,其中用有到了上面两个函数
// 上一页 function page_pre(current_page,page_total){ if(parseInt(current_page) <= 1 || parseInt(current_page) > parseInt(page_total)){ return false; } var pre_page = parseInt(current_page) - 1; set_param('page',pre_page); } // 下一页 function page_next(current_page,page_total){ if(parseInt(current_page) < 1 || parseInt(current_page) >= parseInt(page_total)){ return false; } var next_page = parseInt(current_page) + 1; set_param('page',next_page); }