Получение анкора с помощью javascript
В тех случаях, когда требуется получить значение атрибута href для элемента a, необходимо использовать свойство anchorNode.
Например, следующий код выведет в консоль значение анкора элемента a:
const anchor = document.querySelector('a');
console.log(anchor.anchorNode.href);
Однако в некоторых случаях может возникнуть ошибка “error getting anchor”.
error getting anchor возникает, когда элемент a не имеет атрибута href или когда его значение пусто.
Чтобы избежать этой ошибки, необходимо проверить наличие атрибута href перед тем, как пытаться получить его значение.
Получение анкора с помощью jQuery
В jQuery получение анкора элемента a можно выполнить с помощью метода attr():
const anchor = $('a');
console.log(anchor.attr('href'));
Метод attr() вернет значение атрибута href, если он существует, или null, если атрибут не существует или его значение пусто.
Использование полифиллов
Для поддержки получения анкора в старых браузерах можно использовать полифиллы.
Например, следующий полифилл реализует свойство anchorNode для элементов a:
if (!('anchorNode' in Element.prototype)) {
Element.prototype.anchorNode = function() {
return this.firstChild;
};
}
После применения этого полифилла можно получить анкор элемента a с помощью свойства anchorNode, как описано выше.
Примеры использования
Получение анкора может быть полезно в различных ситуациях, например:
- Для открытия ссылки в новом окне или вкладке:
const anchor = document.querySelector('a');
window.open(anchor.href, '_blank');
- Для проверки, указывает ли ссылка на внешний или внутренний ресурс:
const anchor = document.querySelector('a');
if (anchor.href.startsWith('http')) {
// Внешняя ссылка
} else {
// Внутренняя ссылка
}
- Для получения адреса электронной почты из ссылки mailto:
const anchor = document.querySelector('a[href^="mailto:"]');
const email = anchor.href.substring('mailto:'.length);