Поясните от непонятное место в коде Кантора? Как это так?
При первом входе мы присвоим переменной selectedId значение node, и элементу добавим класс highlight, а вот при повторном вхождении тот элемент которому был добавлен класс теряет его, и мы добавляем класс к текущему элементу по которому кликнули, короче говоря ты кликаешь на один, потом на другой в итоге класс у второго появился а у первого потерялся, а если кликнул на первый же он у него и остался.
https://jsfiddle.net/o1xp1kur/
Вы правите глобальную переменную selectedTd, в ней и остается предыдущее значение.