35

我有这个简单的脚本:

$(document).ready(function(){

var $yoyo = window.location.hash;

alert($yoyo);

});

但是我需要去掉# 符号,因为我将使用该变量来定位 div id。我试过使用 .remove('#') 但这似乎不起作用。

提前谢谢了!

4

4 回答 4

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

这仅仅意味着我们正在获取一个由字符 1(0 索引,所以第二个)开始组成的子字符串。请参阅子字符串文档。

于 2010-07-30T23:18:09.280 回答
15
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>
于 2010-07-30T23:18:10.573 回答
3
$yoyo.substr(1)
于 2010-07-30T23:18:20.780 回答
0

对于那些可能没有阅读过 Steve Harrison 分享的 lea verou 博客的人来说,一个少 4 个字节并使用更新的 JS 定义的版本将是:

let $yoyo = window.location.hash.slice(1)

Slice 是一种数组方法,当给定一个索引时,它会返回从起始索引到最后一个索引的值。由于 Javascript 中的字符串被认为是一个字符数组,并且位置哈希总是有一个开始的 # 或者是一个空字符串,所以这是可行的。

http://lea.verou.me/2011/05/get-your-hash-the-bulletproof-way/

于 2021-08-06T14:18:27.840 回答