HTML
Во-первых, идентификаторы должны быть уникальными.Если вам нужно, чтобы несколько элементов имели один и тот же селектор, используйте вместо этого класс:
<a href="/home">Not affected</a>
<a href="/my-super-project" class="showcase">Affected</a>
<a href="/my-super-project2" class="showcase">Affected</a>
JS
Тогда, если вы хотите получить только ссылки .showcase
вместо выполнения document.getElementsByTagName('a')
, вы можете сделать это, чтобы выбрать только те, которые вы хотите:
var links = document.getElementsByClassName('showcase');
И вот ваш окончательный код:
localStorage.setItem('visited-' + window.location.pathname, true);
var links = document.getElementsByClassName('showcase');
for (i=0; i<links.length; i++) {
var link = links[i];
if(link.host == window.location.host && localStorage.getItem('visited-' + link.pathname)) {
link.dataset.visited = true;
}
}
CSS
Так как вышеКод добавит атрибут data-visited
к вашим ссылкам, вы можете использовать его в своих стилях:
a[data-visited] {
color: green;
}
Примечание: Если вы заметили, что ваши стили не работаютВы можете сделать селектор более точным:
.main a.showcase[data-visited] {
color: green;
}
... или добавить флаг !important
к своим правилам:
a.showcase[data-visited] {
color: green !important;
}