gpt4 book ai didi

javascript - 将类添加到 div 后 DOM 没有更新?

转载 作者:太空狗 更新时间:2023-10-29 14:09:32 25 4
gpt4 key购买 nike

我正在尝试编写一个程序,将所有类名收集到一个 div 中,将它们存储在一个 array 中,然后将它们全部推回到带有类的 DOM最后调用 blue,这是 HTML:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>some title</title>
<style>
.blue{
width: 200px;
height: 200px;
background: blue;
}
</style>
</head>
<body>

<div class="someClass otherClass" id="box"></div>
<button id="btn">click</button>

</body>
</html>

问题是,我知道如何获取 div 中的所有类名,甚至知道如何推送 blue(在 btn 上单击) 在该 div 内以及我收集的其他值,但为什么没有显示蓝色框?我错过了什么?

var domManipulation = function(){
var box = document.querySelector('#box');
var btn = document.querySelector('#btn');
var class_list = [];

if(box.classList.length > 0){
for(var i = 0; i < box.classList.length; i++){
class_list.push(box.classList[i]);
}
}

btn.addEventListener('click', function(){
class_list.push("blue");
box.classList.add(class_list);
console.log(class_list);
});

}();

这是一个JsBin而且我不能使用 jQuery 顺便说一句。

最佳答案

问题是:

box.classList.add(class_list);

您不能添加整个类数组,因为它们最终以逗号分隔。

var domManipulation = function() {
var box = document.querySelector('#box');
var btn = document.querySelector('#btn');
var class_list = [];

if (box.classList.length > 0) {
for (var i = 0; i < box.classList.length; i++) {
class_list.push(box.classList[i]);
}
}

btn.addEventListener('click', function() {
class_list.push("blue");
class_list.forEach(function(e){
box.classList.add(e);
})
console.log(class_list);
});

}();
#box {height: 50px; background: #eee}
#box.blue {background: blue}
<div class="someClass otherClass" id="box"></div>
<button id="btn">click</button>

关于javascript - 将类添加到 div 后 DOM 没有更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34569265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com