【初心者向け】jQueryでURLからアンカーを取得する基本と応用例
jQueryを使ってURLからアンカーを取得する方法
ウェブページには、特定のセクションに移動するためのリンクとしてアンカーが使用されます。JavaScriptとjQueryを使用して、現在のURLまたは別のURLからアンカーを取得することができます。
方法
以下の2つの方法で、jQueryを使ってURLからアンカーを取得できます。
location.hash プロパティを使用する
この方法は、現在のURLのアンカーを取得するために最も簡単でよく使用されます。
$(document).ready(function(){
var anchor = $(location).attr('hash');
if (anchor) {
console.log("アンカー: " + anchor);
} else {
console.log("アンカーなし");
}
});
href 属性と substring() メソッドを使用する
$(document).ready(function(){
var url = "https://example.com/page.html#anchor1";
var anchor = url.substring(url.indexOf("#") + 1);
console.log("アンカー: " + anchor);
});
補足
- 上記の例では、アンカーを取得した後、ログに記録しています。実際には、アンカーを使用してページ内の特定の要素に移動したり、その他の処理を実行したりすることができます。
location.hash
プロパティは、URLのハッシュフラグメント部分(#以降の部分)を取得します。substring()
メソッドは、文字列の一部を抽出するために使用されます。
location.hash プロパティを使用する
<!DOCTYPE html>
<html>
<head>
<title>URLからアンカーを取得</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
<script>
$(document).ready(function(){
var anchor = $(location).attr('hash');
if (anchor) {
console.log("アンカー: " + anchor);
} else {
console.log("アンカーなし");
}
});
</script>
</body>
</html>
このコードを実行すると、現在のURLのアンカーがコンソールに記録されます。
href 属性と substring() メソッドを使用する
<!DOCTYPE html>
<html>
<head>
<title>URLからアンカーを取得</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
<script>
$(document).ready(function(){
var url = "https://example.com/page.html#anchor2";
var anchor = url.substring(url.indexOf("#") + 1);
console.log("アンカー: " + anchor);
});
</script>
</body>
</html>
このコードを実行すると、https://example.com/page.html#anchor2
のアンカーがコンソールに記録されます。
説明
- 上記のコードは、jQueryを使ってURLからアンカーを取得する方法を示しています。
- 1つ目の例では、
location.hash
プロパティを使用して現在のURLのアンカーを取得しています。 - 2つ目の例では、
href
属性とsubstring()
メソッドを使用して別のURLのアンカーを取得しています。 - 取得したアンカーは、ログに記録したり、ページ内の特定の要素に移動したり、その他の処理に使用したりすることができます。
jQueryを使ってURLからアンカーを取得するその他の方法
URLSearchParams オブジェクトを使用する
$(document).ready(function(){
var url = new URL(window.location.href);
var anchor = url.searchParams.get('hash');
if (anchor) {
console.log("アンカー: " + anchor);
} else {
console.log("アンカーなし");
}
});
decodeURIComponent() 関数を使用する
$(document).ready(function(){
var url = "https://example.com/page.html%23anchor3";
var encodedAnchor = url.substring(url.indexOf("#") + 1);
var anchor = decodeURIComponent(encodedAnchor);
console.log("アンカー: " + anchor);
});
正規表現を使用する
$(document).ready(function(){
var url = "https://example.com/page.html?id=123&hash=anchor4";
var match = url.match(/#(.*)/);
if (match) {
var anchor = match[1];
console.log("アンカー: " + anchor);
} else {
console.log("アンカーなし");
}
});
注意事項
URLSearchParams
オブジェクトは、比較的新しい方法ですが、ブラウザのサポートが広く、URLのパラメータとアンカーの両方を取得するのに適しています。decodeURIComponent()
関数は、URLエンコードされたアンカーをデコードする必要がある場合にのみ使用してください。- 正規表現は、より複雑なURLからアンカーを取得する必要がある場合に使用されますが、他の方法よりも複雑で分かりにくいため、最後の手段として使用するようにしてください。
javascript jquery url