Как скрыть :after у предыдущего элемента?
Не надо ничего скрывать, просто при :hover показывать его и готово!.class:after{
   display:none;
   ...
}
.class:hover:after{
   display:block;
   ...
}
Не нужно делать никаких специальных штук для того, чтобы скрыть что-то у предыдущего элемента. Просто показывайте полоску только в том случае, если на элемент наведена мышь.li:hover::after {
   /* здесь стили полосочки */
}
https://jsfiddle.net/h9fwL2j2/