我试图让哈希值点击一个链接后。 有任何想法吗?
如
链接
index.html#needThis
这是我的结果:
index.htmlneedThis
我怎样才能去掉“的index.html”?
$('#myselector').on('click', 'a', function(){
var hash = $(this).attr('href').replace('#', '') //get url
console.log(hash);
})
我试图让哈希值点击一个链接后。 有任何想法吗?
如
链接
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);
})