Piszemy następne funkcje utils, poznając lepiej drzewo DOM oraz JavaScript. Do dzieła!

Sprawdzamy, czy element jest odnośnikiem:

function isAnchor(el){
    return el instanceof HTMLAnchorElement;
}

Teraz czy jest odnośnikiem do numeru telefonu:

function isTelAnchor(el){
    return el.matches('a[href^="tel:"]');
}

Sprawdzamy, czy element jest linkiem image-mapy:

function isImageMapLink(el){
    return el.matches("map > area[href]");
}

Sprawdzamy, czy dokument ma linki image-mapowe:

function hasImageMapLinks(){
    let anchors = document.querySelectorAll("a").length;
    let links = document.links.length;
    return (links - anchors) !== 0;
  }

Sprawdzamy, czy element jest linkiem, który otworzy się w nowej karcie:

function isNewTabAnchor(el){
    return el.matches('a[target="_blank"]') || el.matches('a[target="blank"]');
}

Sprawdzamy, czy element jest linkiem do scrollowania do istniejącego elementu na stronie:

function isScrollableAnchor(el){
    return el.matches('a[href^="#"]') && (document.querySelector(el.getAttribute("href")) !== null);
}