2013-02-28 83 views
0

好吧,在这里,我正在做一个JScirpt的页面,所以你可以按下键盘按钮移动到下一页。页面网址如下所示; http://example.org/12345,所以我想我的脚本要做的是每次按下按钮时将数字加1。我想大部分的代码是正确的,但它不会做任何事情JScript网址替换

function GoThere() { 
var url = window.location.pathname; 
var ew = 'url'+1 
url = eq.replace(location.hostname, location.hostname+ew); 
window.location = url; 
} 

将不胜感激,如果有人可以看看,并试图解释什么,我做错了

// EniM

回答

1

检查url是一个int,并将引号关闭。可能使用一些清理,但:

// strip out the/
var curint = window.location.pathname.replace(/\D/g,''); 

// convert string to int 
curint = parseInt(curint, 10); 

var nextint = curint + 1; 
window.location = 'http://example.org/' + nextint; 

查看在Chrome中的控制台。你可以逐行运行JS ...只需键入一个函数或var,它将打印结果。或者在来源下设置中断点。

+0

如果它是1,这意味着它不正确解析路径。如果你看看window.location.pathname,这里有更多的不只是int?你需要一个字符串*,它看起来就像一个整数,然后将它转换为一个int,这样你就可以对它进行数学运算。 – 2013-02-28 05:02:36

+0

好的,谢谢你现在的作品。唯一的问题是,代码放入1而不是添加即123451而不是12346,以前从未使用整数,但看起来像我应该,反正是有什么问题,我的代码,它不工作,但不知道什么是错的 – Nemx 2013-02-28 05:03:16

+0

对不起,它只是我搞砸了,你的代码工作完美,一个bug坦克给你=)。现在我只是想试着去理解(/ \ D/g,'')究竟是什么意思,但谷歌是我的朋友。无论如何,要试着让我的代码工作,在做数学之前它必须是int吗?还是可以将它作为一个字符串来完成? 编辑 - 我看到一个东西,当我copypaste网页的url,它有/ show/between example/show/12345,这是否意味着如果我有一个字符串Cat123它只会使数字为int并忽略这些字母? – Nemx 2013-02-28 05:32:50

1

我相信在这行你的问题依赖

var ew = 'url'+1 

应该

var ew = parseInt(url)+1; 
+0

不应该有'url'位的引号,要么...... – Stobor 2013-02-28 05:18:41

+0

我忘了删除它们 - 编辑 – 2013-02-28 05:25:15

+0

Ty,必须首先将其设置为int,但必须使用window.location.pathname.replace (/ \ d /克, '');为一个干净的网址,反正我不能让剩下的工作不真的知道为什么,反正现在有一个工作代码=) – Nemx 2013-02-28 07:05:48