我有以下代碼,我在其中嘗試迭代創建標簽元素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."}undefinedTypeError: undefined is not an object (evaluating 'newDay.textContent = key.charAt(0)') 我似乎無法弄清楚為什么newDay不能以這種方式創建元素 - 是否有特殊原因這不起作用?
1 回答

哈士奇WWW
TA貢獻1799條經驗 獲得超6個贊
我想我看到了這個問題。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.
無論您在哪里創建新元素,然后稍后嘗試更新該元素,您都需要像這樣將步驟分開。
如果您有任何疑問,請告訴我!
- 1 回答
- 0 關注
- 131 瀏覽
添加回答
舉報
0/150
提交
取消