我的Meteor项目中有以下功能:
function populate(){
//console.log(Calendar.find().count())
var dates = Calendar.find().fetch();
for (var i = 0; i < dates.length; i++){
var today = new Date(dates[i].date);
//console.log('tbody.event-calendar tr td[date-month="' + (today.getMonth() + 1) + '"][date-day="' + today.getDate() + '"]')
$('tbody.event-calendar tr td[date-month="' + (today.getMonth() + 1) + '"] [date-day="' + today.getDate() + '"]').addClass('event');
}
}
当我取消注释console.logs时,我得到正确的计数和代码,例如:$("tbody.event-calendar tr td[date-month="8"][date-day="26"]").addClass("event")
作为日期循环。
奇怪的是,如果我删除jQuery中的变量并硬编码一个数字(用8代替today.getMonth(),用1代替today.getDate(),代码按预期工作。
导致我的jQuery不能使用变量的原因是什么?
答案 0 :(得分:4)
尝试date-month
和date-day
之间没有空格:
$('tbody.event-calendar tr td[date-month="' + (today.getMonth() + 1) + '"][date-day="' + today.getDate() + '"]').addClass('event');