如何从url获取散列值?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (17)

单击链接后,我正在尝试获取哈希值。有什么想法吗?

链接

index.html#needThis

这是我的结果:

index.htmlneedThis

如何删除“index.html”?

$('#myselector').on('click', 'a', function(){
    var hash = $(this).attr('href').replace('#', '') //get url
    console.log(hash);
})
提问于
用户回答回答于

现代浏览器(不知道它是怎么回事)可以hash直接从锚元素中提取(所以我添加了#5

你的选择

  1. var hash = $(this).attr('href').split('#')[1];
  2. var hash = $(this).attr('href').replace(/^.*?#/,'');
  3. var href = $(this).attr('href'), hash = href.substr(href.indexOf('#')+1);
  4. var hash = $(this).attr('href').match(/#(.*$)/)[1];
  5. var hash = this.hash.substr(1);

只是重新审视了这一点,我相信#2可以改进

$(this).attr('href').replace(/^.*?(#|$)/,'');

这样,如果不存在散列,它将返回空而不是整个URL。

用户回答回答于

就用var hash = window.location.hash

它会在#之后返回所有内容

或者如果你有一个包含url的变量:

$(this).attr('href').substring($(this).attr('href').indexOf('#'))

扫码关注云+社区