如何在javascript中更改当前URL?

Maa*_*hir 31 javascript

在我的网站上:

http://mywebsite.com/1.html
Run Code Online (Sandbox Code Playgroud)

我想用

window.location.pathname
Run Code Online (Sandbox Code Playgroud)

获取网址的最后一部分:

1.html
Run Code Online (Sandbox Code Playgroud)

由于我的所有网页都有数字,我想在当前网址中添加1,这样当我点击一个按钮时,它会将我重定向到下一页:

var url = 'http://mywebsite.com/' + window.location.pathname;
function nextImage (){
url = url + 1;  
}
Run Code Online (Sandbox Code Playgroud)

任何想法为什么这不起作用?

jfr*_*d00 31

您的示例无法正常工作,因为您尝试将1添加到如下所示的字符串:"1.html".这只会让你得到这个"1.html1",这不是你想要的.您必须隔离字符串的数字部分,然后将其转换为实际数字,然后才能对其进行数学运算.在获得实际数字后,您可以增加其值,然后将其与字符串的其余部分合并.

您可以使用这样的自定义替换功能来隔离原始URL的各个部分,并使用递增的数字替换该数字:

function nextImage() {
    return(window.location.href.replace(/(\d+)(\.html)$/, function(str, p1, p2) {
        return((Number(p1) + 1) + p2);
    }));
}
Run Code Online (Sandbox Code Playgroud)

然后你可以像这样调用它:

window.location.href = nextImage();
Run Code Online (Sandbox Code Playgroud)

在这里演示:http://jsfiddle.net/jfriend00/3VPEq/

这适用于任何以一系列数字后跟.html结尾的URL,如果您需要稍微不同的URL表单,则可以调整正则表达式.

  • 我不这么认为有足够的话来感谢你:) (2认同)