得到URL的哈希值(Get hash value from url)

2019-07-03 18:06发布

我试图让哈希值点击一个链接后。 有任何想法吗?

链接

index.html#needThis

这是我的结果:

index.htmlneedThis

我怎样才能去掉“的index.html”?

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

Answer 1:

更新

现代浏览器( 不知道它会如何回 )可以提取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的这种方式..



Answer 2:

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

它返回#之后的一切

或者,如果你有其中包含一个URL的变量:

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


Answer 3:

您可以使用窗口位置的散列尝试。

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


Answer 4:

为什么不直接使用:

window.location.hash

作品对我蛮好。



Answer 5:

试试这个,

$('#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);
})​


文章来源: Get hash value from url
标签: jquery url hash