为什么先打印出“ undefined”?

时间:2019-06-23 21:05:53

标签: javascript html

我有一个循环,该循环创建List项并将其插入到<ol>元素中。它工作得很好,但是,它首先打印出的内容是<ol>内的“ undefined”(虽然不是<li>项),然后才出现真正的<li>项。

var calculatedPaymentsinput field中的数字(如5)。

 <ol id="month-list" class="list-group"></ol>

 var i;
  var monthsItem;
  for (i=1; i <= calculatedPayments; i++) {
    monthsItem += '<li class="list-group-item"> Månad '+i+':';
    monthList.innerHTML = monthsItem;
    console.log(i);
  }

2 个答案:

答案 0 :(得分:2)

在将<li>分配给monthsItem时,不要使用+ before =,它是将monthsItem的值(显然是未定义的)与您的<li>片段连接在一起。
只需使用简单的赋值运算符即可进行赋值:

monthsItem = '<li class="list-group-item"> Månad '+i+':';

答案 1 :(得分:1)

在循环的第一次迭代中,尚未定义变量monthsItem,因此,在调用此行时,其值已映射到undefined

monthsItem += '<li class="list-group-item"> Månad '+i+':';

解决方法:将monthsItem初始化为空字符串:

var monthsItem = "";