@xmoonlight, можно parent_id в comments добавить, принцип будет такой же, как я описал изначально. Но если автор хочет один уровень комментариев, как здесь, то будет достаточно и такой структуры.
1. На самом деле обсуждение этого вопроса - чистой воды холивар. Тут нет "хорошо" или "плохо", при правильном использовании и именовании никакие проблем возникать не будут. Много у вас будет на странице элементов с классами wrapper-tabs или tab-box?
2. А в чем, если не секрет, её несемантичность, нелогичность и непрактичность? Ну, вместо span можно использовать button, раз это кнопки. Что еще?
3. Повышается производительность за счет того, что событие навешивается только на один родительский элемент.
4. А как еще вы будете искать неактивные кнопки переключения?
1. Почему на классах плохо?
2. Данная разметка просто пример.
3. Если я вас правильно понял, то ответ будет такой - это обычное делегирование события. У вас есть варианты сделать лучше? Предлагайте.
4. Тоже не совсем понятно что вы имеете в виду.