目次
- classListプロパティの概要
- 実機サンプルとサンプルコード
- サンプルCSSのコード
- classList.valueプロパティでclass属性を追加する
- classList.valueプロパティでclass属性を削除する
- classList.addメソッドでclass属性を追加する
- classList.removeメソッドでclass属性を削除する
- classList.containsメソッドでclass属性値の有無を確認する
- classList.toggleメソッドでclass属性の適用を交互にON,OFFする
- classList.replaceメソッドでclass属性を置き換える
- 関連のあるページ
- 参考になるサイト
classListプロパティの概要
classListプロパティは、HTML要素のclass属性を参照できるプロパティです。
実際の使用方法としてはHTML要素を特定する必要があるので、documentオブジェクトのgetElementByIdメソッドなどで要素を特定して、
classListプロパティを参照する方法が用いられ、そこから下位に繋がるプロパティやメソッドを使用することでclass属性の値の操作や取得を実行することになります。
実機サンプルとサンプルコード
classListプロパティから下位のメソッドやプロパティを利用することで、その要素のclass属性の値を操作することができます。サンプルCSSのコード
classListプロパティの説明に入る前に結果表示のサンプルとして使用しているCSSのコードを紹介しておきます。 1つ目のセレクター名をclass仕様の「.」と +「class名」を使い「.clsPink」として要素の背景色をピンクと定義しています。 2つ目のセレクター名をclass仕様の「.」と +「class名」を使い「.clsAqua」として要素の背景色をアクアと定義しています。.clsPink{
background-color: pink;
}
.clsAqua{
background-color: aqua;
}
classList.valueプロパティでclass属性を追加する
答え: id="idAnswer1"
この要素にプログラムの結果が反映されます。
実行:
<body>
<p>
<samp id="idAnswer1">この要素にプログラムの結果が反映されます。</samp>
</p>
<p>
<input type="button" value="valueプロパティでclass属性を追加" onclick="evtName1()">
</p>
<script type="text/javascript">
document.open();
let elmAnswer1 = document.getElementById("idAnswer1");
function evtName1(){
elmAnswer1.classList.value = "clsPink";
}
document.close();
</script>
</body>
classList.valueプロパティでclass属性を削除する
答え: id="idAnswer2"
この要素にプログラムの結果が反映されます。
実行:
<body>
<p>
<span id="idAnswer2" class="clsPink">この要素にプログラムの結果が反映されます。</span>
</p>
<p>
<input type="button" value="valueプロパティでclass属性を削除" onclick="evtName2()">
</p>
<script type="text/javascript">
document.open();
let elmAnswer2 = document.getElementById("idAnswer2");
function evtName2(){
elmAnswer2.classList.value = "";
}
document.close();
</script>
</body>
classList.addメソッドでclass属性を追加する
答え: id="idAnswer3"
この要素にプログラムの結果が反映されます。
実行:
<body>
<p>
<span id="idAnswer3">この要素にプログラムの結果が反映されます。</span>
</p>
<p>
<input type="button" value="classList.addメソッドでclassを追加" onclick="evtName3()">
</p>
<script type="text/javascript">
document.open();
let elmAnswer3 = document.getElementById("idAnswer3");
function evtName3(){
elmAnswer3.classList.add("clsPink");
}
document.close();
</script>
</body>
classList.removeメソッドでclass属性を削除する
答え: id="idAnswer4"
この要素にプログラムの結果が反映されます。
実行:
<body>
<p>
<span id="idAnswer4" class="clsPink">この要素にプログラムの結果が反映されます。</span>
</p>
<p>
<input type="button" value="classList.removeメソッドでclassを削除" onclick="evtName4()">
</p>
<script type="text/javascript">
document.open();
let elmAnswer4 = document.getElementById("idAnswer4");
function evtName4(){
elmAnswer4.classList.remove("clsPink");
}
document.close();
</script>
</body>
classList.containsメソッドでclass属性値の有無を確認する
答え: id="idAnswer5"
この要素にプログラムの結果が反映されます。
実行:
<body>
<p>
<span id="idAnswer5" class="clsPink">この要素にプログラムの結果が反映されます。</span>
</p>
<p>
<input type="button" value="classList.containsメソッドでclass属性値の有無を確認" onclick="evtName5()">
</p>
<script type="text/javascript">
document.open();
let elmAnswer5 = document.getElementById("idAnswer5");
function evtName5(){
elmAnswer5.innerText = elmAnswer5.classList.contains("clsPink");
}
document.close();
</script>
</body>
classList.toggleメソッドでclass属性の適用を交互にON,OFFする
答え: id="idAnswer6"
この要素にプログラムの結果が反映されます。
実行:
<body>
<p>
<span id="idAnswer6">この要素にプログラムの結果が反映されます。</span>
</p>
<p>
<input type="button" value="classList.toggleメソッドでclass属性の適用を交互にON,OFF" onclick="evtName6()">
</p>
<script type="text/javascript">
document.open();
let elmAnswer6 = document.getElementById("idAnswer6");
function evtName6(){
elmAnswer6.classList.toggle("clsPink");
}
document.close();
</script>
</body>
classList.replaceメソッドでclass属性を置き換える
答え: id="idAnswer7"
この要素にプログラムの結果が反映されます。
実行:
<body>
<p>
<span id="idAnswer7" class="clsPink">この要素にプログラムの結果が反映されます。</span>
</p>
<p>
<input type="button" value="classList.replaceメソッドでclassを置き換え" onclick="evtName7()">
</p>
<script type="text/javascript">
document.open();
let elmAnswer7 = document.getElementById("idAnswer7");
function evtName7(){
if(elmAnswer7.classList.value=="clsPink"){
elmAnswer7.classList.replace("clsPink","clsAqua");
}
else{
elmAnswer7.classList.replace("clsAqua","clsPink");
}
}
document.close();
</script>
</body>