こんにちは、さち です。
先日、JavaScript を使っているときに、特定の要素(HTML)が持っている「クラス」をすべて削除したいことがありました。
「クラス」の名前も個数も分からない状態で、すべての「クラス」を削除するにはどうしたらいいの……?
ということで、解決方法を見ていきましょう。
【方法1】 「setAttribute」を使う
class 属性に「空の値」を渡すことで、すべてのクラスを削除します。シンプルで分かりやすい方法です。
HTML
<div class="one two three"></div>
JavaScript
let div = document.querySelector('div');
console.log(div);// <div class="one two three">
div.setAttribute('class', '');// class の値を空にする
console.log(div);// <div class="">
【方法2】 「classList」を使う
element.classList.remove() に自身が持つ「クラス一覧」を渡すことで、すべてのクラスを削除します。
HTML
<div class="one two three"></div>
JavaScript
let div = document.querySelector('div');
console.log(div);// <div class="one two three">
div.classList.remove(...div.classList);// クラスの配列を展開して渡す
console.log(div);// <div class="">
div.classList には要素の持つすべてのクラスが「配列」として入っています。
...div.classList とすることで、「配列」の中身がすべて展開されます。
これを div.classList.remove() に渡すことで、すべてのクラスが削除されます。


コメント