我试图做一个循环,在每次执行时更改一个元素的类。问题是
classList.add('something')
需要字符串,我需要在其中放置一个变量,这是我的代码:
const head = document.createElement('div');
function change_head() {
var head_class = [
{name: "bold"},
{name: "rainbow_head"},
{name: "hut_head"},
{name: "beats_head"}
];
for (let i = 0; i < head_class.length; i += 1){
diffrent_head = head_class[i];
head.classList.add(head_class[i]);
}
};
希望可以在此处以某种方式使用变量。
答案 0 :(得分:2)
在head_class
数组中,您的对象带有字段name
,该字段具有字符串值。使用它:
for (let i = 0; i < head_class.length; i += 1){
head.classList.add(head_class[i].name);
}
答案 1 :(得分:1)
问题是,您需要访问.name
属性才能获取字符串:
head.classList.add(head_class[i].name);
const head = document.createElement('div');
function change_head() {
var head_class = [
{name: "bold"},
{name: "rainbow_head"},
{name: "hut_head"},
{name: "beats_head"}
];
for (let i = 0; i < head_class.length; i += 1){
diffrent_head = head_class[i];
head.classList.add(head_class[i].name);
}
}
change_head();
console.log(head.className);
但是有一个更好看的选择-您可以.map
head_class
仅将字符串(从每个字符串中提取.name
属性),然后将字符串数组散布到{{1 }},导致.add
仅被一次调用:
.add