如何使用jQuery从URL中获取锚?

yrefmtwq  于 2023-10-17  发布在  jQuery
关注(0)|答案(6)|浏览(114)

我有一个URL,就像:

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

如何使用jQuery获取a_1锚值并将其存储为变量?

5n0oy7gb

5n0oy7gb1#

对于当前窗口,可以使用:

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

要获取主窗口的哈希值,请使用以下命令:

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

如果你有一个带有URL/hash的string,最简单的方法是:

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

如果你正在使用jQuery,请使用以下命令:

var hash = $(location).attr('hash');
yacmzcpb

yacmzcpb2#

您可以使用.indexOf().substring(),如下所示:

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

You can give it a try here,如果其中可能没有#,请执行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) : "";

如果这是 * 当前 * 页面的URL,您可以使用window.location.hash来获取它,如果您愿意,可以替换#

0ve6wy6x

0ve6wy6x3#

使用

window.location.hash

找回一切,包括#

eivgtgni

eivgtgni4#

jQuery style:

$(location).attr('hash');
pb3s4cty

pb3s4cty5#

您可以使用以下“技巧”来解析 * 任何 * 有效的URL。它利用了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
vcudknz3

vcudknz36#

如果你只有一个普通的url字符串(因此没有hash属性),你也可以使用正则表达式:

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

相关问题