亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

(Js) 循環中未定義標簽元素創建

(Js) 循環中未定義標簽元素創建

隔江千里 2023-10-30 20:00:31
我有以下代碼,我在其中嘗試迭代創建標簽元素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.

無論您在哪里創建新元素,然后稍后嘗試更新該元素,您都需要像這樣將步驟分開。


如果您有任何疑問,請告訴我!


查看完整回答
反對 回復 2023-10-30
  • 1 回答
  • 0 關注
  • 131 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號