概要: このチュートリアルでは、JavaScriptのclassNameプロパティを使用して、要素のCSSクラスを操作する方法を学習します。
JavaScript className入門
classNameは、要素のプロパティであり、要素のCSSクラスのスペース区切りリストを文字列として返します。
element.classNameCode language: CSS (css)次のようなul要素があるとします。
<ul id="menu" class="vertical main">
<li>Homepage</li>
<li>Services</li>
<li>About</li>
<li>Contact</li>
</ul>Code language: HTML, XML (xml)コンソールウィンドウにul要素のクラスが表示されます。
let menu = document.querySelector('#menu');
console.log(menu.className);Code language: JavaScript (javascript)出力
vertical mainclassNameプロパティを使用して要素に新しいクラスを追加するには、既存のクラス名と新しいクラス名を連結します。
element.className += newClassName; +=演算子は、newClassNameを要素の既存のクラスリストに連結します。そのため、新しいクラス名の前にスペースを付ける必要があります。
let menu = document.querySelector('#menu');
menu.className += ' new';
console.log(menu.className);Code language: JavaScript (javascript)出力
'vertical main new'Code language: JavaScript (javascript)実際には、要素の既存のクラスに新しいクラスを追加するには、classListを使用します。
let menu = document.querySelector('#menu');
menu.classList.add('new');
console.log(menu.className);Code language: JavaScript (javascript)出力
'vertical main new'Code language: JavaScript (javascript)要素のすべてのクラスを完全に上書きするには、単純な代入演算子を使用します。例えば、
element.className = "class1 class2";Code language: JavaScript (javascript)要素のクラスの完全なリストを取得するには、classNameプロパティにアクセスする必要があります。
let classes = element.className;Code language: JavaScript (javascript)classはJavaScriptのキーワードであるため、classの代わりにclassNameという名前が使用されます。
また、classはHTML属性です
<div id="note" class="info yellow-bg red-text">JS className</div>Code language: HTML, XML (xml)一方、classNameは要素のDOMプロパティです。
let note = document.querySelector('#note');
console.log(note.className); Code language: JavaScript (javascript)出力
info yellow-bg red-text要素には、CSSクラスをより適切に操作するのに役立つclassListと呼ばれる別のプロパティがあります。
まとめ
classNameプロパティは、要素のクラスのスペース区切りリストを文字列として返します。
クイズ
このチュートリアルは役に立ちましたか?