[javascript] jQuery를 사용하여 URL에서 앵커를 얻는 방법은 무엇입니까?

다음과 같은 URL이 있습니다.

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

a_1jQuery를 사용하여 앵커 값을 가져 와서 변수로 저장할 수 있습니까?



답변

다음 .indexOf().substring()같이 and 를 사용할 수 있습니다 .

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 인 경우 URL window.location.hash을 가져 와서 #원하는 경우 바꿀 수 있습니다.


답변

들어 현재 창 , 당신은이를 사용할 수 있습니다 :

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

기본 창의 해시 값을 얻으려면 다음을 사용하십시오.

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

URL / 해시가 포함 된 문자열이있는 경우 가장 쉬운 방법은 다음과 같습니다.

var url = 'https://www.stackoverflow.com/questions/123/abc#10076097';
var hash = url.split('#').pop();

jQuery를 사용하는 경우 다음을 사용하십시오.

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


답변

사용하다

window.location.hash

#을 포함한 모든 것을 검색


답변

jQuery 스타일 :

$(location).attr('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] 


답변