解決したいこと
dotinstallでclassList を使ったレッスンをしております。
ボタンをクリックするたびに .my-colorが付いたり外れたりの動きを作っています。
containsである要素に特定のクラスが付いているかどうか調べることもでき、このクラスが付いてるかどうかを true 、 false で返してくれるというところで疑問があります。下記コードに書きましたがif文で表した時contains('my-color')で表したものは初めからtrueと決まっているのか、そのようなデフォルト仕様だと考えればいいのかご教示いただきたく存じます。
該当するソースコード
html
1<style> 2.my-color { 3 background-color: aqua; 4 color: red; 5 } 6</style> 7<button>Run</button> 8<h1 id = "target">文字色が変わるよ</h1> 9
js
1 const button = document.querySelector('button'); 2 button.addEventListener('click', () => { 3 const targetNode = document.getElementById('target'); 4 5 6 if (targetNode.classList.contains('my-color')) { 7 targetNode.classList.remove('my-color'); 8 } else { 9 targetNode.classList.add('my-color'); 10 } 11 12
button要素をクリックしてclassがついていた場合、ノードのremoveメソッドがクラスを外してくれるのでstyleで指定した色が消える。クラスが消えていた場合addメソッドでclassを追加したため色がつく。と理解はしているのですが、そもそもの真偽値はこのように決まっているのはなぜなのか。コメントいただけると幸いです
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。