JavaScriptでidやclassを追加・削除する方法を動くサンプルコード付きで紹介していきます。
サンプルコード
document.createElement()でdiv要素を生成し、idやclassの追加をしています。
テキストをクリックすると追加したidやclassが削除され、styleの変化を確認することができます。
See the Pen ID / Class by POSIPAN (@posipan) on CodePen.
idの追加・削除
追加 | element.id = ‘値’; |
削除(値を空にする) | element.id = ”; |
// id
let elementId = document.createElement('div');
elementId.innerText = 'idだよ';
// idの追加
elementId.id = 'valueId';
elementId.addEventListener('click', function() {
// idの削除
elementId.id = '';
// this.id = '';
});
document.body.appendChild(elementId);
element.id = ”;でidを削除した場合、HTMLは以下のようになります。
<div id="">aaa</div>
classの追加・削除
基本
追加 | element.classList.add(‘値’); |
削除(値の削除) | element.classList.remove(‘値’); |
// class
let elementCls = document.createElement('div');
elementCls.innerText = 'classだよ';
// classの追加
elementCls.classList.add('valueCls');
elementCls.addEventListener('click', function() {
// classの削除
elementCls.classList.remove('valueCls');
// this.classList.remove('valueCls');
});
document.body.appendChild(elementCls);
複数classパターン
複数classの追加・削除も可能です。値をカンマ区切りで設定します。
追加 | element.classList.add(‘値1’, ‘値2’); |
削除(値の削除) | element.classList.remove(‘値1’, ‘値2’); |
// 複数class
let elementMultiCls = document.createElement('div');
elementMultiCls.innerText = '複数classだよ';
// 複数classの追加
elementMultiCls.classList.add('valueMultiCls', 'active');
elementMultiCls.addEventListener('click', function() {
// 複数classの削除
elementMultiCls.classList.remove('valueMultiCls', 'active');
// this.classList.remove('valueMultiCls', 'active');
});
document.body.appendChild(elementMultiCls);
element.classList.remove('値');
でclassを削除し、値が1つもない場合、HTMLは以下のようになります。
<div class="">aaa</div>
setAttribute/removeAttributeでidやclassの追加・削除
追加 | element.setAttribute(‘属性’, ‘値’); |
削除(属性の削除) | element.removeAttribute(‘属性’); |
setAttributeやremoveAttributeはidやclassに限らず他属性の追加・削除も可能です。
// id(setAttribute, removeAttribute)
let attrId = document.createElement('div');
attrId.innerText = 'setAttributeで設定したidだよ';
// id属性の追加
attrId.setAttribute('id', 'valueId');
attrId.addEventListener('click', function() {
// id属性の削除
attrId.removeAttribute('id');
// this.removeAttribute('id');
});
document.body.appendChild(attrId);
// class(setAttribute, removeAttribute)
let attrCls = document.createElement('div');
attrCls.innerText = 'setAttributeで設定したclassだよ';
// class属性の追加
attrCls.setAttribute('class', 'valueCls');
attrCls.addEventListener('click', function() {
// class属性の削除
attrCls.removeAttribute('class');
// this.removeAttribute('class');
});
document.body.appendChild(attrCls);
removeAttributeは属性をまるっと削除するため、
前章で紹介した削除方法とは動作が異なります。
HTMLは以下のようになります。
<div>aaa</div>