Есть ли простой способ удалить все классы CSS дочерних элементов определенного элемента HTML с помощью JavaScript? Я знаю только, как удалить каждый из них по отдельности.
Заранее спасибо.
Вы можете использовать forEach
и removeAttribute
для удаления атрибута class
из дочерних элементов:
document.querySelectorAll( '#example *' ).forEach( element =>
{
element.removeAttribute( 'class' );
});
Чтобы удалить все классы из элемента, установите его имя className
в пустую строку.
function removeAllClasses(elem){
elem.className = "";
}
Чтобы получить все дочерние элементы элемента, вы можете использовать селектор запросов:
function getAllChildren(id){
return document.querySelectorAll('#${id} *');//or document.querySelectorAll("#"+id+" *")
}
Вы можете использовать цикл for
или forEach
для удаления классов из всех дочерних элементов элемента.
var children = document.querySelectorAll("#id *");
for(let i = 0; i < children.length; i++){
children[i].className = "";
}
//or
children.forEach(function(i){
i.className = "";
});
Демо-версия:
.red{
color: red;
}
.large{
font-size: 5em;
}
<div id="test">
<div class="red large">text</div>
<span class="red large">text</span>
<select class="red large">text</select>
<div class="red large">First layer
<div class="red large">second layer
<span class="red large">Nested third layer</span>
</div>
</div>
</div>
<script>
function removeAllClasses(elem){
elem.className = "";
}
function getAllChildren(id){
return document.querySelectorAll('#${id} *');
}
var children = getAllChildren('test');
for(let i = 0; i < children.length; i++){
removeAllClasses(children[i]);
}
</script>
elements.forEach(removeAllClasses);
или что-то типа того