web-dev-qa-db-ja.com

jQueryを使用してURLからアンカーを取得する方法は?

次のようなURLがあります。

www.example.com/task1/1.3.html#a_1

JQueryを使用してa_1アンカー値を取得し、変数として保存するにはどうすればよいですか?

168
zjm1126

.indexOf() および .substring() を次のように使用できます。

var url = "www.aaa.com/task1/1.3.html#a_1";
var hash = url.substring(url.indexOf("#")+1);

ここで試してみることができます#が含まれていない可能性がある場合は、次のようにif(url.indexOf("#") != -1)チェックを実行します。

var url = "www.aaa.com/task1/1.3.html#a_1", idx = url.indexOf("#")
var hash = idx != -1 ? url.substring(idx+1) : "";

これがcurrentページURLである場合は、window.location.hashを使用して取得し、必要に応じて#を置き換えることができます。

198
Nick Craver

現在のウィンドウの場合、これを使用できます。

var hash = window.location.hash.substr(1);

メインウィンドウのハッシュ値を取得するには、これを使用します。

var hash = window.top.location.hash.substr(1);

URL /ハッシュを含む文字列がある場合、最も簡単な方法は次のとおりです。

var url = 'https://www.stackoverflow.com/questions/123/abc#10076097';
var hash = url.split('#').pop();

JQueryを使用している場合、これを使用します。

var hash = $(location).attr('hash');
465
Silvio Delgado

つかいます

window.location.hash

#以外のすべてを取得するには

64
Real

jQueryスタイル:

$(location).attr('hash');
35
Valentin E

次の「トリック」を使用して、有効なURLanyを解析できます。 anchor element の特別なhref関連プロパティhashを利用します。

JQueryを使用

function getHashFromUrl(url){
    return $("<a />").attr("href", url)[0].hash.replace(/^#/, "");
}
getHashFromUrl("www.example.com/task1/1.3.html#a_1"); // a_1

プレーンJS

function getHashFromUrl(url){
    var a = document.createElement("a");
    a.href = url;
    return a.hash.replace(/^#/, "");
};
getHashFromUrl("www.example.com/task1/1.3.html#a_1"); // a_1
9
David Murdoch

プレーンなURL文字列がある場合(したがって、ハッシュ属性がない場合)、正規表現を使用することもできます。

var url = "www.example.com/task1/1.3.html#a_1"  
var anchor = url.match(/#(.*)/)[1] 
3
DrewB