「値 ? ' ' : 値」の挙動はどうなっているのでしょうか
以下の部分の挙動はどうなっているのでしょうか？

```

    function toggle(element,classe) {
        element.className = element.className ? '' : classe; //この部分です。 
    }
    
```
[三項演算子](https://developer.mozilla.org/ja/docs/JavaScript/Reference/Operators/Conditional_Operator)ですね。

条件式 ? 条件が真の場合の値 : 条件が偽の場合の値

条件が真の時この式全体の値として「条件が真の場合の値」になり、偽の場合「条件が偽の場合の値」になります。

なので、

`element.className = element.className ? '' : classe;`

は、  
エレメントにクラス名が設定されていたら(`element.className`) 空文字(`''`)にする。  
そうでなければ（つまりクラス名が設定されていなかったら）`classe` をクラス名として設定する。  
という意味になります。
[三項演算子](https://developer.mozilla.org/ja/docs/JavaScript/Reference/Operators/Conditional_Operator)ですね。

条件式 ? 条件が真の場合の値 : 条件が偽の場合の値

条件が真の時この式全体の値として「条件が真の場合の値」になり、偽の場合「条件が偽の場合の値」になります。

なので、

`element.className = element.className ? '' : classe;`

は、  
エレメントにクラス名が設定されていたら(`element.className`) 空文字(`''`)にする。  
そうでなければ（つまりクラス名が設定されていなかったら）`classe` をクラス名として設定する。  
という意味になります。