【问题标题】:removing the # from window.location.hash从 window.location.hash 中删除 #
【发布时间】:2021-08-06 22:18:27
【问题描述】:

我有这个简单的脚本:

$(document).ready(function(){

var $yoyo = window.location.hash;

alert($yoyo);

});

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

非常感谢!

【问题讨论】:

标签: jquery window.location


【解决方案1】:
var $yoyo = window.location.hash.substring(1);

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

【讨论】:

  • 只要字符串实际上以“#”开头就可以使用,但可以说这更健壮且更易于阅读:window.location.hash.replace(/^#/, "")
  • @ChristianDavén window.location.hash 前面总是有一个散列或者是空的,而''.substring(1) === '',所以我认为这个解决方案非常强大。我确实认为你的可读性更强。 (另见lea.verou.me/2011/05/get-your-hash-the-bulletproof-way
【解决方案2】:
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>

【讨论】:

  • 当然,既然这是 Stack Overflow,它是一个 jQuery DOM 操作函数。但实际上它可以是任何东西。 -_-
  • @Will,该帖子被标记为 jQuery。它不可能只是任何东西;)
【解决方案3】:
$yoyo.substr(1)

【讨论】:

    【解决方案4】:

    对于那些可能没有阅读过 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/

    【讨论】:

      猜你喜欢
      • 2013-03-02
      • 2015-04-25
      • 2018-06-18
      • 2012-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-12
      • 2011-12-14
      相关资源
      最近更新 更多