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