У меня есть URL-адрес, похожий на:
www.example.com/task1/1.3.html#a_1
Как я могу получить значение привязки a_1
с помощью jQuery и сохранить его как переменную?
У меня есть URL-адрес, похожий на:
www.example.com/task1/1.3.html#a_1
Как я могу получить значение привязки a_1
с помощью jQuery и сохранить его как переменную?
Вы можете использовать .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
, чтобы получить его, и заменить #
, если хотите.
Для текущего окна вы можете использовать это:
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
.
function getHashFromUrl(url){
return $("<a />").attr("href", url)[0].hash.replace(/^#/, "");
}
getHashFromUrl("www.example.com/task1/1.3.html#a_1"); // a_1
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]