Comment obtenir l'ancre à partir de L'URL en utilisant jQuery?
j'ai une URL qui est comme:
www.example.com/task1/1.3.html#a_1
Comment puis-je obtenir la valeur d'ancrage a_1
en utilisant jQuery et la stocker comme variable?
6 réponses
vous pouvez utiliser le .indexOf()
et .substring()
, comme ceci:
var url = "www.aaa.com/task1/1.3.html#a_1";
var hash = url.substring(url.indexOf("#")+1);
Vous pouvez l'essayer ici , si elle ne peut pas avoir un #
, de faire "un 151950920" case comme ceci:
var url = "www.aaa.com/task1/1.3.html#a_1", idx = url.indexOf("#")
var hash = idx != -1 ? url.substring(idx+1) : "";
si c'est L'URL de la page courante , vous pouvez simplement utiliser window.location.hash
pour l'obtenir, et remplacer le #
si vous voulez.
vous pouvez utiliser ceci:
var hash = window.location.hash.substr(1);
Utiliser
window.location.hash
pour récupérer tout au-delà et y compris le #
vous pouvez utiliser le" truc "suivant pour analyser tout URL valide. Il tire profit de la élément d'ancrage href propriété liée spéciale hash
.
avec jQuery
function getHashFromUrl(url){
return $("<a />").attr("href", url)[0].hash.replace(/^#/, "");
}
getHashFromUrl("www.example.com/task1/1.3.html#a_1"); // a_1
Avec plaine de la 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
si vous avez juste une chaîne d'url (et donc pas d'attribut de hachage), vous pouvez aussi utiliser une expression régulière:
var url = "www.example.com/task1/1.3.html#a_1"
var anchor = url.match(/#(.*)/)[1]