Come ottenere l’ancora dall’URL usando jQuery?

Ho un URL che è come:

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

Come posso ottenere il valore di ancoraggio a_1 usando jQuery e memorizzarlo come variabile?

Puoi usare .indexOf() e .substring() , come questo:

 var url = "www.aaa.com/task1/1.3.html#a_1"; var hash = url.substring(url.indexOf("#")+1); 

Puoi fare un tentativo qui , se non può avere un # in esso, fai un if(url.indexOf("#") != -1) controlla in questo modo:

 var url = "www.aaa.com/task1/1.3.html#a_1", idx = url.indexOf("#") var hash = idx != -1 ? url.substring(idx+1) : ""; 

Se questo è l’URL della pagina corrente , puoi semplicemente usare window.location.hash per ottenerlo e sostituire il # se lo desideri.

Puoi usare questo:

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

Uso

 window.location.hash 

per recuperare tutto oltre e includendo il #

stile jQuery:

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

È ansible utilizzare il seguente “trucco” per analizzare qualsiasi URL valido. Sfrutta la speciale proprietà href dell’elemento di ancoraggio , l’ hash .

Con jQuery

 function getHashFromUrl(url){ return $("").attr("href", url)[0].hash.replace(/^#/, ""); } getHashFromUrl("www.example.com/task1/1.3.html#a_1"); // a_1 

Con semplice 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 

Se hai solo una stringa url semplice (e quindi non hai un attributo hash) puoi anche usare un’espressione regolare:

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