单击链接后,我试图获取哈希值。有任何想法吗?
例如
链接
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)
随便挑吧。。
var hash = $(this).attr('href').split('#')[1];
var hash = $(this).attr('href').replace(/^.*?#/,'');
var href = $(this).attr('href'), hash = href.substr(href.indexOf('#')+1);
var hash = $(this).attr('href').match(/#(.*$)/)[1];
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('#'))
您可以尝试使用窗口位置哈希。
$('#myselector').on('click', 'a', function(){
var hash = $(this).attr('href').replace('#', '') //get url
var hash2 = window.location.hash ;
console.log(hash2);
})
为什么不简单地使用:
window.location.hash
对我来说效果很好。
试试这个,
$('#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);
})