从url获取哈希值

时间:2012-11-12 13:03:22

标签: jquery url hash

我试图在点击链接后获取哈希值。有什么想法吗?

e.g。

链接

index.html#needThis

这是我的结果:

index.htmlneedThis

如何删除'index.html'?

$('#myselector').on('click', 'a', function(){
    var hash = $(this).attr('href').replace('#', '') //get url
    console.log(hash);
})

5 个答案:

答案 0 :(得分:65)

<强>更新

现代浏览器(不确定它是怎么回事)可以直接从锚元素中提取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);

  6. <强>更新

    重温这一点,我相信#2可以改进

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

    这样,如果不存在哈希,它将返回空而不是整个网址。

答案 1 :(得分:16)

只需使用var hash = window.location.hash

它返回#

之后的所有内容

或者,如果您有一个包含网址的变量:

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

答案 2 :(得分:5)

您可以尝试使用窗口位置哈希。

$('#myselector').on('click', 'a', function(){
    var hash = $(this).attr('href').replace('#', '') //get url
    var hash2 = window.location.hash ;
    console.log(hash2);
})

答案 3 :(得分:2)

为什么不简单地使用:

window.location.hash

对我来说效果很好。

答案 4 :(得分:1)

试试这个,

$('#myselector').on('click', 'a', function(){
    var url = $(this).attr('href') //get url
    var arr = url.split('#');
    alert(arr[0]); //URL without hash #
    var hash = arr[1];
    console.log(hash);
})​