如何使用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]