我想根据某些条件修改网址值
(1)如果我当前的网址为http://example.com
然后我必须将?order = new 添加到此网址中,我编写以下代码并且它正在运行
var url=window.location.href;
url=url+"order=new";
(2)如果我当前的网址为http://example.com/?class=1
然后我必须将& order = new 添加到此网址,我编写以下代码并且它正在运行
var url=window.location.href;
if(url.indexOf("class=") >= 0){
url=url+"&order=new";
}
(3)如果我当前的网址为http://example.com/?class=1&order=new
然后我必须将& order = date 添加到此网址,我将编写以下代码并且它正在运行
var url=window.location.href;
if (url.indexOf("order=") >=0){
url= url.split("order=")[0]+"order=date";
}
(4)如果我的网址是http://example.com/?class=anyvalue&div=anyvalue&order=anyvalue
或http://example.com/?class=anyvalue&order=anyvalue&div=anyvalue
。我在这里如何替换订单价值?
即
http://example.com/?class=anyvalue&div=anyvalue&order=anything
http://example.com/?class=anyvalue&order=anything&div=anyvalue
请支持
答案 0 :(得分:2)
据我所知,我认为你想要这个:
var url = 'http://example.com/?class=anyvalue&order=anything&div=anyvalue';
if (url.indexOf("order=") >= 0 && url.indexOf('div=') >= 0){
newUrl = url.replace('order=anything', 'order=456');
}
使用replace()
功能。将url
更改为您正在使用的内容。
答案 1 :(得分:2)
使用URL
var url = window.location.href;
var urlObj = new URL( url );
现在您可以搜索网址的参数
var order = urlObj.searchParams.get("order");
if ( !order )
{
//url += url.contains( "?" ) ? "&order=new" : "?order=new";
//contains didnt work so used includes instead
url += url.includes( "?" ) ? "&order=new" : "?order=new";
}
同样,您也可以替换值
var order = urlObj.searchParams.get("order");
if ( order )
{
urlObj.searchParams.set("order", "123");
}
console.log( urlObj.href );
更新: 将jsfiddle添加到您的解决方案中:)) jsfiddle link