gpt4 book ai didi

javascript - (Js) 循环中未定义标签元素创建

转载 作者:行者123 更新时间:2023-11-30 23:56:29 31 4
gpt4 key购买 nike

我有以下代码,我尝试在其中迭代创建标签元素 newDay (我附加 newDayIcon 并最终附加到 newWeekSet :

...
console.log(dict);

var newLine = document.createElement('div').classList.add('list-group-item');
var newButton = document.createElement('div').classList.add('add-button');
var newTemp = document.createElement('a');
var newName = document.createElement('a').classList.add('name-font');
var newWeekSet = document.createElement('div').classList.add('right-align');
Object.entries(dict).forEach(function([key, value]) {
console.log(key, value);
var newDay = document.createElement('label').classList.add('day-font');
var newDayIcon;
console.log(newDay);
newDay.textContent = key.charAt(0);
if (value) {
newDayIcon = document.createElement('i').classList.add('far', 'fa-check-circle', 'fa-xs')
newDayIcon.style.color = 'Blue';
}
else {
newDayIcon = document.createElement('i').classList.add('far', 'fa-times-circle', 'fa-xs')
newDayIcon.style.color = 'Orange';
}
newDay.appendChild(newDayIcon);
newWeekSet.appendChild(newDay);
});
var newMoveIcon = document.createElement('i').classList.add('fas', 'fa-bars');
newButton.id = 'schedule-'+i++;

newLine.append(newButton, newName, newWeekSet, newMoveIcon);
dashboard.appendChild(newLine);
}

具有以下电流输出:

  Friday: null,
Monday: Object {
EndTime: "12:50 A.M.",
StartTime: "12:55 A.M."
},
Saturday: null,
Sunday: Object {
EndTime: "12:50 A.M.",
StartTime: "12:55 A.M."
},
Thursday: null,
Tuesday: null,
Wednesday: null
}

"Sunday" Object {
EndTime: "12:55 A.M.",
StartTime: "12:59 A.M."
}

undefined

TypeError: undefined is not an object (evaluating 'newDay.textContent = key.charAt(0)')

我似乎无法弄清楚为什么不能以这种方式创建 newDay 元素 - 是否有特殊原因这不起作用?

最佳答案

我想我看到了这个问题。 document.createElement('label').classList.add('day-font'); 不返回值。在任何地方使用 classList.add 的结果,实际上都是将 var 分配给 undefined

我在您的脚本中的很多地方都看到了这种模式。我建议在尝试像这样操作它之前创建元素并将值分配给 var:

var newDay = document.createElement('label');
newDay.classList.add('day-font');
// do even more things to newDay if you want.

无论在哪里创建新元素,然后稍后尝试更新该元素,您都需要像这样将步骤分开。

如果您有任何疑问,请告诉我!

关于javascript - (Js) 循环中未定义标签元素创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61016644/

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