web-dev-qa-db-ja.com

URLからハッシュ値を取得

リンクがクリックされた後にハッシュ値を取得しようとしています。何か案は?

例えば.

リンク

index.html#needThis

これは私の結果です:

index.htmlneedThis

「index.html」を削除するにはどうすればよいですか?

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

更新

最新のブラウザ(どのように戻るかわからない)はアンカー要素から直接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全体ではなく空を返します。

65

var hash = window.location.hashを使用してください。

#の後のすべてを返します

または、URLを含む変数がある場合:

$(this).attr('href').substring($(this).attr('href').indexOf('#'))
16
Kir Ivlev

ウィンドウの場所のハッシュを試すことができます。

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

なぜ単に使用しないのですか:

window.location.hash

私にとってはうまくいく。

2
jucedogi

これを試して、

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