如何使用jQuery从URL获得锚?

我有一个像这样的URL:

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

如何使用jQuery获取a_1锚定值并将其作为variables存储?

您可以使用.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来获取它,并且如果你愿意,可以replace#

你可以使用这个:

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

使用

 window.location.hash 

检索超出并包括#

jQuery风格:

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

您可以使用以下“技巧”来parsing任何有效的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 

如果你只有一个普通的urlstring(因此没有hash属性),你也可以使用正则expression式:

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