Получить значение хеша из URL-адреса
Я пытаюсь получить значение хэша после того, как была нажата ссылка. Любые идеи?
например.
Ссылка
index.html#needThis
Это мой результат:
index.htmlneedThis
Как я могу удалить 'index.html'?
$('#myselector').on('click', 'a', function(){
var hash = $(this).attr('href').replace('#', '') //get url
console.log(hash);
})
Ответы
Ответ 1
Обновление
Современные браузеры (не уверенные, как это происходит) могут извлечь hash
непосредственно из элементов привязки (поэтому я добавил # 5)
Возьмите свой выбор..
-
var hash = $(this).attr('href').split('#')[1];
-
var hash = $(this).attr('href').replace(/^.*?#/,'');
-
var href = $(this).attr('href'), hash = href.substr(href.indexOf('#')+1);
-
var hash = $(this).attr('href').match(/#(.*$)/)[1];
-
var hash = this.hash.substr(1);
Обновление
Просто пересматриваю это, и я считаю, что # 2 можно улучшить до
$(this).attr('href').replace(/^.*?(#|$)/,'');
Таким образом, если хеш не существует, он будет возвращать пустой, а не весь URL.
Ответ 2
Просто используйте var hash = window.location.hash
.
Он возвращает все после #
Или, если у вас есть переменная, которая содержит URL-адрес:
$(this).attr('href').substring($(this).attr('href').indexOf('#'))
Ответ 3
Вы можете попробовать с хешем расположения окна.
$('#myselector').on('click', 'a', function(){
var hash = $(this).attr('href').replace('#', '') //get url
var hash2 = window.location.hash ;
console.log(hash2);
})
Ответ 4
Попробуйте это,
$('#myselector').on('click', 'a', function(){
var url = $(this).attr('href') //get url
var arr = url.split('#');
alert(arr[0]); //URL without hash #
var hash = arr[1];
console.log(hash);
})
Ответ 5
Почему бы просто не использовать:
window.location.hash
Работает отлично для меня.