我有一个URL是这样的:

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

我怎么能得到a_1锚值使用jQuery和存储它作为一个变量?


当前回答

你可以使用.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) : "";

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

其他回答

你可以使用.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) : "";

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

Use

window.location.hash

检索#以外的所有内容,包括#

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

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

jQuery风格:

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

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