前言
首先,我们需要知道什么是 search , search 是 window.location 的一个属性.举个例子:
首先,我们这里有一个 url,是 http://www.a.com/list/2.html"text-align: center">
如上,我们要操作的就是上图中方框框出来的这个部分.
为什么要操作这个"color: #ff0000">构建方法
获取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 "" : ""; 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 "") { // 如果没有 search 值,则返回追加了参数的 url url = baseUrl + name + "=" + value; }else{ // 如果没有 search 值,则在其中修改对应的值,并且去重,最后返回 url var 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; }
使用方法
funcUrl()获取完整search值(不包含问号)
funcUrl(name)返回 url 中 name 的值(整合上一段别人的方法)
funcUrl(name,value) 将search中name的值设置为value,并返回完整url
返回内容如 http://www.a.com/list/2.html"color: #ff0000">小结
本来想找个现成的插件来用,结果要么太大看不懂,要么不好使.当然,主要还是我水平太差的原因.
所以就造个轮子玩玩,虽然代码不够优雅,但是还是满足了我的需求.如果你有更好的建议,给我留言哦.
其实,主要是配合vue来用的,但这里没有VUE的内容,因此就不算VUE的系列教程了.
以上所述是小编给大家介绍的JavaScript操作 url 中 search 部分方法函数的全部叙述,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
js,url,search
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。