js 增删改 url 参数

[复制链接]
admin 发表于 2021-11-23 11:58:27 | 显示全部楼层 |阅读模式 0
  1. var urlOption={
  2.     _set:function (name,val,jump=false) {
  3.         let thisURL = String(document.location);
  4.         if(thisURL.indexOf(name+'=') > 0){
  5.             let v = this._get(name);
  6.             if(v != null) {
  7.                 thisURL = thisURL.replace(name + '=' + v, name + '=' + val);
  8.             }else{
  9.                 thisURL = thisURL.replace(name + '=', name + '=' + val);
  10.             }
  11.         }else{
  12.             if(thisURL.indexOf("?") > 0){
  13.                 thisURL = thisURL + "&" + name + "=" + val;
  14.             }else {
  15.                 thisURL = thisURL + "?" + name + "=" + val;
  16.             }
  17.         }
  18.         if(jump){
  19.             location.href = thisURL;
  20.         }else{
  21.             return thisURL;
  22.         }
  23.     },
  24.     _get:function (name) {
  25.         let reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
  26.         let r = window.location.search.substr(1).match(reg);
  27.         if(r!=null)return  unescape(r[2]); return null;
  28.     },
  29.     _del:function (name) {
  30.         let thisURL = String(document.location);
  31.         if (thisURL.indexOf(name+'=') > 0){
  32.             let arr_url = thisURL.split('?');
  33.             let base = arr_url[0];
  34.             let arr_param = arr_url[1].split('&');
  35.             let index = -1;
  36.             for (let i = 0; i < arr_param.length; i++) {
  37.                 let paired = arr_param[i].split('=');
  38.                 if (paired[0] === name) {
  39.                     index = i;
  40.                     break;
  41.                 }
  42.             }
  43.             if (index === -1) {
  44.                 return thisURL;
  45.             }else{
  46.                 arr_param.splice(index, 1);
  47.                 if(arr_param.length){
  48.                     return base + "?" + arr_param.join('&');
  49.                 }else{
  50.                     return base ;
  51.                 }
  52.             }
  53.         }else{
  54.             return thisURL;
  55.         }
  56.     }
  57. }
复制代码


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则