質問: document.getElementsByClassName('tab'); target.classList.toggle('-select'); ```
回答: `target.classList`が`undefined`のために起こります。 `target`を`document.getElementsByClassName()`で取得していますが、 これは指定したクラス名がついている要素の~~配列~~HTMLCollectionが返ってきます。 つまり、`classList`が使用できるのは`Element`である必要があるのに、 `target`は`~~Element[]~~HTMLCollection`であるために、`classList`が`undefined`となります。 取得したい要素が必ず0番目であれば`document.getElementsByClassName(xxx)[0]`とすればよいでしょう。 [追記]取得した全要素に対してであればループで回しましょう。