
如上,我们要操作的就是上图中方框框出来的这个部分.
为什么要操作这个?
例如,我在第二页,需要跳转到第三页,就需要把上面的 page=2 给更新成 page=3 并且保证其他的参数保留.
又或者,本来没有search结果(如一般列表的第一页就啥都没有),但我现在需要加上page=2.
再来,我需要知道我现在在第几页,也就是说,我需要获取 page的值.
等等,都需要操作search.现在我们前后端分离,search是一个很重要的参数配置的方法.
构建方法
获取search中指定的某个参数值
百度一下,我们找到如下方法:
function GetQueryString(name){var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");var r = window.location.search.substr(1).match(reg);if(r!=null)return unescape(r[2]); return null;}方法出处:用JS获取地址栏参数的方法function funcUrl(name,value,type){var loca = window.location;var baseUrl = type==undefined ? loca.origin + loca.pathname + "?" : "";var query = loca.search.substr(1);// 如果没有传参,就返回 search 值 不包含问号if (name==undefined) { return query }// 如果没有传值,就返回要查询的参数的值if (value==undefined){var val = query.match(new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"));return val!=null ? unescape(val[2]) : null;};var url;if (query=="") {// 如果没有 search 值,则返回追加了参数的 urlurl = baseUrl + name + "=" + value;}else{// 如果没有 search 值,则在其中修改对应的值,并且去重,最后返回 urlvar obj = {};var arr = query.split("&");for (var i = 0; i < arr.length; i++) {arr[i] = arr[i].split("=");obj[arr[i][0]] = arr[i][1];};obj[name] = value;url = baseUrl + JSON.stringify(obj).replace(/["{}]/g,"").replace(/:/g,"=").replace(/,/g,"&");};return url;}使用方法