次のようなURLがあります。
www.example.com/task1/1.3.html#a_1
JQueryを使用してa_1
アンカー値を取得し、変数として保存するにはどうすればよいですか?
.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
を使用して取得し、必要に応じて#
を置き換えることができます。
現在のウィンドウの場合、これを使用できます。
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');
つかいます
window.location.hash
#以外のすべてを取得するには
jQueryスタイル:
$(location).attr('hash');
次の「トリック」を使用して、有効なURLanyを解析できます。 anchor element の特別なhref関連プロパティhash
を利用します。
function getHashFromUrl(url){
return $("<a />").attr("href", url)[0].hash.replace(/^#/, "");
}
getHashFromUrl("www.example.com/task1/1.3.html#a_1"); // a_1
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
プレーンなURL文字列がある場合(したがって、ハッシュ属性がない場合)、正規表現を使用することもできます。
var url = "www.example.com/task1/1.3.html#a_1"
var anchor = url.match(/#(.*)/)[1]