是否有一种简单的方法可以使用JavaScript删除特定HTML元素的子元素的所有CSS类?我只知道如何分别删除每个。
谢谢。
答案 0 :(得分:1)
您可以使用forEach
和removeAttribute
从子元素中删除class
属性:
document.querySelectorAll('#example *').forEach(element => {
element.removeAttribute('class');
});
答案 1 :(得分:0)
要从元素中删除所有类,请将其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>