Как получить якорь из URL с помощью jQuery?
У меня есть URL, который выглядит так:
www.example.com/task1/1.3.html#a_1
Как я могу получить a_1
значение якоря с помощью jQuery и сохранить его в качестве переменной?
6 ответов:
можно использовать
.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
чтобы получить его, и заменить#
если вы хотите.
вы можете использовать следующий "трюк" для разбора любой допустимый 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