Как получить якорь из URL с помощью 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
Если у вас есть простая строка url (и, следовательно, нет атрибута хэша), вы также можете использовать регулярное выражение:
var url = "www.example.com/task1/1.3.html#a_1"
var anchor = url.match(/#(.*)/)[1]