找不到为什么这个js/jQuery要列出最近12个月生成“未定义”警告
我无法摆脱在ul标签内和第一个li之前的html中显示的“未定义”消息。找不到为什么这个js/jQuery要列出最近12个月生成“未定义”警告
HTML:
<ul id="monthFilters" class="dropdown-menu pull-right" role="menu" aria-labelledby="dropdownMenu1"></ul>
JS/jQuery的:
$(document).ready(function(){
var theMonths = new Array("01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12");
var theMonthNames = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
var today = new Date();
var aMonth = today.getMonth();
var aYear = today.getFullYear();
var i;
var monthList;
for (i=0; i<12; i++) {
monthList += '<li role="presentation"><a role="menuitem" tabindex="-1" href="?addedin=' + aYear + '-' + theMonths[aMonth] + '">'+theMonthNames[aMonth]+'</a></li>';
aMonth--;
if (aMonth < 0) {
aMonth = 11;
aYear--;
}
}
monthList += '<li role="presentation"><a role="menuitem" tabindex="-1" href="?all">Show All</a></li>';
$("#monthFilters").append(monthList);
});
请参阅错误在此codepen。控制台中没有显示错误。我是否太累了,错过了简单/愚蠢的事情?
您没有将monthList定义为字符串,因此您尝试将字符串添加到未定义的字符串中。只需在循环之前执行此操作即可
var monthList = "";
您需要初始化monthList
变量。在您的代码中,它的值为undefined
,因此当您构建第一个<li>
元素时,将附加undefined
字。
一个空字符串初始化它,就像
var monthList = "";
感谢您的快速响应!有两个相似的答案,我只是投票给另一个,因为它在几秒钟内就会提前。 – 2014-09-04 08:53:19
当然没问题! – 2014-09-04 08:54:13
你可以试试这个?
var monthList;
到
var monthList="";
感谢您的快速响应!我甚至无法接受你的答案,持续7分钟。 :) – 2014-09-04 08:54:31