如何在JavaScript中的for循环中创建元素

如何在JavaScript中的for循环中创建元素,javascript,dom,clock,Javascript,Dom,Clock,注意:请查看代码结构。不能将节点追加到数组,就像不能从节点中.pop或.remove项一样 我正在尝试在for循环或forEach(尝试了两者)中创建一个元素 我得到的值,不管它们是在一个数组中 因此,它们嵌套在ul中,但没有li标记 我试图添加li标签,但我无法实现 这是代码笔: 代码如下: // Get te location // Make the : blink //var location = document.querySelector('.clock-location')

注意:请查看代码结构。不能将节点追加到数组,就像不能从节点中.pop或.remove项一样

我正在尝试在for循环或forEach(尝试了两者)中创建一个元素

我得到的值,不管它们是在一个数组中

因此,它们嵌套在ul中,但没有li标记

我试图添加li标签,但我无法实现

这是代码笔:

代码如下:

    // Get te location
// Make the : blink

//var location = document.querySelector('.clock-location');

function abbrev(a,b) {
  return a.substr(0,b);
}

function currentDay() {
  // Go to array
  // If today day (number) matched one of the array
  // To this add active
}

function displayTime() {

  var clockTime = document.querySelector('.clock-time');
  var clockDay = document.querySelector('.clock-day');
  var clockWeekdays = document.querySelector('.clock-weekdays');

  var date = new Date();

  var weekday = new Array(7);
  weekday[0] = "Monday";
  weekday[1] = "Tuesday";
  weekday[2] = "Wednesday";
  weekday[3] = "Thursday";
  weekday[4] = "Friday";
  weekday[5] = "Saturday";
  weekday[6] =  "Sunday";

  var singleDay = [];

  // weekday.forEach(function(day){
  //  singleDay.push(abbrev(day,3));
  // });

  for (var i = 0; i < weekday.length; i++) {
    var day = weekday[i];
    var li = document.createElement('li').innerHTML = day;
    singleDay.push(abbrev(li,3));
  }

  // Mechanics
  var todayDay = weekday[date.getDay()];

  // Display
  clockDay.innerHTML = abbrev(todayDay,3);
  clockWeekdays.innerHTML = singleDay;

  setTimeout(startTime, 1000);
}



displayTime();

// Get the time

//Loop Throw weekdays - show 3 letters
//获取te位置
//做出决定:眨眼
//变量位置=document.querySelector('.clock location');
函数abbrev(a,b){
返回a.substr(0,b);
}
函数currentDay(){
//转到阵列
//如果今天(数字)与数组中的一个匹配
//为此,请添加“活动”
}
函数displayTime(){
var clockTime=document.querySelector(“.clock time”);
var clockDay=document.querySelector(“.clock day”);
var clockWeekdays=document.querySelector(“.clock weekdays”);
变量日期=新日期();
var weekday=新数组(7);
工作日[0]=“星期一”;
工作日[1]=“星期二”;
工作日[2]=“星期三”;
工作日[3]=“周四”;
工作日[4]=“周五”;
工作日[5]=“周六”;
工作日[6]=“周日”;
var singleDay=[];
//weekday.forEach(函数(天){
//单日推送(abbrev(day,3));
// });
对于(变量i=0;i
在for循环中,去掉将li推入数组的最后一行,而是使用appendChild()将新创建的li元素添加到数组中


您需要正确创建元素,然后使用
appendChild

for (var i = 0; i < weekday.length; i++) {
    var day = weekday[i];
    var li = document.createElement('li');
    li.innerHTML = abbrev(day,3);
    clockWeekdays.appendChild(li);
}
for(变量i=0;i
我稍微更改了您的循环(删除了
push
步骤,每次循环迭代都会添加新的子循环):

否则您的
innerHTML
将被覆盖。这是工作代码笔:


这条线应该做什么
var li=document.createElement('li')。innerHTML=day你认为这行是什么意思/作用?我在测试很多东西。这在这里创建了元素li,并在其中放置了一天,也就是工作日[i],所以它应该在lilol中循环所有这些元素。它不起作用。可能重复的可能重复,但问题是不同的。特别是对于代码结构:)但不管怎样,让它成为for循环,这与每个不同:)AppendChild只在节点元素上工作,而这是一个数组。所以它不起作用,事实上,它不起作用。是的,但我以为你在帮助我:D我的代码连接到数组以使其起作用:D但该代码也不起作用,并且它与我的代码结构不起作用。还是我错了?除非您将其附加到clockWeekdays,这是有意义的,否则我们不需要数组。所以这会循环,是的,我想这是另一种方法。AppendChild只在节点元素上工作。而这是一个数组。
for (var i = 0; i < weekday.length; i++) {
  var day = weekday[i];
  var li = document.createElement('li');
  li.innerHTML = abbrev(day,3);
  clockWeekdays.appendChild(li);
}
clockWeekdays.innerHTML = singleDay;