Niedogodności klas w JavaScript

Załóżmy, że mamy kilka klas do stylizacji wiadomości:

css.success {
  color: green;
}
.warning {
  color: orange;
}
.error {
  color: red;
}

Załóżmy, że w pewnym elemencie wyświetliliśmy wiadomość sukcesu i przypisaliśmy mu odpowiednią klasę dla sukcesu:

javascriptelem.classList.add('success');

Załóżmy teraz, że w tym samym elemencie wyświetliliśmy wiadomość o błędzie i przypisaliśmy mu odpowiednią klasę dla błędu:

javascriptelem.classList.add('error');

W rezultacie okaże się, że w elemencie będą dwie klasy konfliktujące ze sobą:

html<div id="elem" class="success error">
  text
</div>

Okazuje się, że przed dodaniem nowej klasy, musimy najpierw usunąć poprzednią:

javascriptelem.classList.remove('success');
elem.classList.add('error');

To nie jest zbyt wygodne, ponieważ możemy nie wiedzieć, która dokładnie była poprzednia klasa i będziemy musieli usuwać wszystkie klasy po kolei:

javascriptelem.classList.remove('success');
elem.classList.remove('warning');
elem.classList.add('error');
Задание 1

Dane jest pole input. Po utracie fokusu sprawdź, czy wprowadzono do niego nie więcej niż 9 znaków. Jeśli tak, pokoloruj obramowanie pola na zielono, a jeśli nie - na czerwono.