窗口位置.href附加而不是替换

3

我有一个小问题,无法解决。我有一个滑块,我想在单击“上一个”和“下一个”按钮时更改url。以下是我的代码,但它不能正确工作。每次单击按钮时,url都会附加而不是替换。

var url = window.location.href;
url = url + "page/" + 1;  // this number is dynamic actually
window.location.href = url;

例如,它显示; stackoverflow.com/page,我点击了stackoverflow.com/page/1,然后又点击了stackoverflow.com/page/1/page/2 但我只想将它替换为stackoverflow.com/page/2 我该如何解决这个问题?谢谢您的帮助。
3个回答

4
你需要在page前面添加一个前导/,就可以创建一个与域名相关的路径。

试试看

var url =  "/page/" + 1;

4

窗口位置.href返回整个URL...

如果你只想添加“/page/1”

使用

var url = window.location.origin;
url = url + "/page/" + 1;  // this number is dynamic actually
window.location.href = url;

尽管在Windows 10中window.location.origin未定义

https://developer.mozilla.org/en-US/docs/Web/API/Window/location

你可以只替换 /page/#number# 部分

var url = window.location.href;
url = url .replace(new RegExp("/page/[0-9]"), "/page/2")
window.location.href = url;

0

你可以使用正则表达式来获取页面部分并进行替换。

类似这样:

let num = 2, url= "stackoverflow.com/page/1";
url = url.replace(/(page\/)([0-9]{1,})/, "$1"+num)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接