Я пытаюсь преобразовать все ссылки фрагмента в относительные, удалив ведущее #
, но следующее не будет выполняться:
$('a[href^=#]').attr('href', $(this).attr('href').substring(1));
Если я заменил $(this).attr('href').substring(1)
с $(this).attr('href')+'test'
или 'test'+'TEST'.substring(1)
он запускается, Что не так с $(this).attr('href').substring(1)
?
Ваш $(this)
не относится к тегу <a>
найденному вашим селектором, а не текущей области кода. Вместо этого вам нужно использовать функцию перегрузки attr:
$('a[href^=#]').attr('href', function(i, attr) {
return attr.substring(1);
});