リンクがクリックされた後にハッシュ値を取得しようとしています。何か案は?
例えば.
リンク
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);
})