У меня есть таблица, полная событий, и я пытаюсь узнать количество событий, которые происходят каждый час. Так что легко увидеть количество одновременных событий.
Чтобы сделать это, я бегу по таблице в поисках div-событий (которые находятся внутри td), а затем получаю начало и продолжительность, и помещаю это в отдельный div, складывая их, пока я иду Вы получите «9:00, 5 событий», 10:00, 3 события ...
Пока что я думаю, что код выглядит довольно хорошо, но у меня есть странная проблема. Я передаю индекс, чтобы знать, какая ячейка подсчитывается.
Первое предупреждение возвращает номер индекса. Тем не менее, второе предупреждение возвращает [объект HTMLDivELEMENT], и я не знаю, почему это так. Я думаю, что все будет работать нормально, если бы я мог получить индекс после функции .each.
Код такой (немного упрощен для облегчения понимания)
for(sched=1;sched<8;sched++){
alert(sched);
jQuery('div.event', 'table#events td:nth-child('+sched+')').each(function(sched){
var start=jQuery(this).data('start');
var duration=jQuery(this).data('dur');
var eventId=jQuery(this).attr('id');
alert(sched);
for(t=0;t<=duration;t++){
var thisHour=start+t;
var numEvents=jQuery('li#hour'+thisHour, 'table#events td.dailyTotals:nth-child('+sched+')').data('count');
if(numEvents==null){
numEvents=0;
}
numEventsf++;
jQuery('li#hour'+thisHour, 'table#events td.dailyTotals:nth-child('+sched+')').css('background-color','red');
jQuery('li#hour'+thisHour,'table#events td.dailyTotals:nth-child('+sched+')').data('count', numEvents);
jQuery('li#hour'+thisHour,'table#events td.dailyTotals:nth-child('+sched+')').text(numEvents);
}
});
}