2010-07-30 63 views
29

我有這個簡單的腳本#:去除window.location.hash

$(document).ready(function(){ 

var $yoyo = window.location.hash; 

alert($yoyo); 

}); 

但我需要,我將使用變量來定位div編號擺脫#符號。我試過使用.remove('#'),但似乎沒有工作。

非常感謝提前!

+0

http://stackoverflow.com/a/5298684/104380 – vsync 2013-02-02 22:00:41

回答

76
var $yoyo = window.location.hash.substring(1); 

這只是意味着我們採取由字符1的子串(0索引,所以第二)起。請參閱substring文檔。

+4

這工作只要字符串實際上以「#」開頭,​​但可以說,這是更穩健並且更易於閱讀:'window.location.hash.replace(/ ^#/,「」)'。 – 2016-05-02 09:14:31

+0

@ChristianDavén'window.location.hash'將始終有一個前面的散列或爲空,並且'''.substring(1)===''',所以我認爲這個解決方案非常強大。我認爲你的閱讀能力更強。 (另請參閱http://lea.verou.me/2011/05/get-your-hash-the-bulletproof-way/) – 2017-03-01 01:05:11

16
var $yoyo = window.location.hash.replace("#", ""); 

.remove()是一個jQuery DOM操作函數。 .replace()是一個本地JavaScript函數,它用一個字符串內的另一個字符串替換一個字符串。從W3Schools的:

<script type="text/javascript"> 

var str="Visit Microsoft!"; 
document.write(str.replace("Microsoft", "W3Schools")); 

</script> 
+1

+1,用於解釋爲什麼.remove()不起作用。 – 2010-07-30 23:38:04

+0

當然,因爲這是Stack Overflow,所以它是一個jQuery DOM操作函數。但實際上它可能是任何東西。 -_- – 2011-07-04 14:59:38

+0

@會,這個帖子被標記爲jQuery。它不能只是任何東西;) – 2011-07-09 17:37:08