Для тех, кто заинтересован, я сделал троичную версию блока if с проверкой, чтобы увидеть, какие классы есть у элемента и какой класс присоединяется.
$(document).ready(function () {
$("a").click(function (e) {
var hostname = new RegExp(location.host);
var url = $(this).attr("href");
hostname.test(url) ?
$(this).addClass('local') :
url.slice(0, 1) == "/" && url.slice(-1) == "/" ?
$(this).addClass('localpage') :
url.slice(0, 1) == "#" ?
$(this).addClass('anchor') :
$(this).addClass('external');
var classes = $(this).attr("class");
console.log("Link classes: " + classes);
$(this).hasClass("external") ? googleAnalytics(url) :
$(this).hasClass("anchor") ? console.log("Handle anchor") : console.log("Handle local");
});
});
Бит Google Analytics можно игнорировать, но именно здесь вы, вероятно, хотели бы что-то сделать с URL-адресом, теперь, когда вы знаете, какой это тип ссылки. Просто добавьте код внутри троичного блока.
Если вы хотите проверить только один тип ссылки, замените троичные на оператор if.
Отредактировано, чтобы добавить в проблему, с которой я столкнулся. Некоторые из моих ссылок были "/ Курсы /" вроде так. Я сделал проверку для локальной страницы, которая проверяет, есть ли косая черта в начале и конце href. Хотя, возможно, достаточно просто проверить «/» в начале.