Não consigo obter informações pessoais com jquery

Estou em um aplicativo symfony (2.3) usando http://www.symfocal.com/

Eu tento mudar a maneira como o calendar é exibido, mas eu tenho alguns problemas com jquery:

Aqui está a parte do código modificado referente ao meu problema.

O arquivo de twig com jquery:

 ... jQuery(document).ready(function() { var cal1 = $('#cal1'); var cal2 = $('#cal2'); function fillCalendar(mois, annee, cal) { $(cal).css('display', 'none'); $(cal).find('a').removeClass().unbind(); {% if admin == false %} $(cal).find('a').click(function(e){e.preventDefault();}); {% endif %} ... var id = $(cal).attr('id'); $.post(url,{ month: mois, year: annee, },function(data){ if(data.responseCode==200 ) { var days_previous_month=data.days_previous_month; var nb_days_prev=data.nb_days_prev; $('#'+id+'_title').html(data.current_month); var count=1; while(count<43) { {% if admin %} if(data.calendar[(count-1)].dates!="") { $('#'+id+'_cell_'+count).attr("title", data.calendar[(count-1)].dates).click(changeState); } else { $('#'+id+'_cell_'+count).click(function(e){e.preventDefault();}); } {% endif %} if(data.calendar[(count-1)].booked==-1) $('#'+id+'_cell_'+count).html(days_previous_month - nb_days_prev + count); else $('#'+id+'_cell_'+count).html(data.calendar[(count-1)].fill); if(data.calendar[(count-1)].booked==1) $('#'+id+'_cell_'+count).addClass(data.calendar[(count-1)].classe); else if(data.calendar[(count-1)].booked<0) $('#'+id+'_cell_'+count).addClass("dates_preview"); count++; } $(cal).css('display', 'block'); } else ... function changeMonths(step) { gap = gap + step; var newMonth = month + (1 * gap)%12; var gapYear = (1 * gap)/12; var newYear = year + gapYear - gapYear%1; if (newMonth<=0) { newMonth+=12; } {% for item in items %} fillCalendar(newMonth-12*Math.floor((newMonth)/13), newYear+Math.floor((newMonth)/13), 'cal{{ item.id }}' ); {% endfor %} } ... $(window).load(function(){ changeMonths(0); }); });  

e a parte html – com um twig incluem:

 
{% for i in 1..6 %} {% endfor %} {% for item in items %} {% for i in 1..42 %} {% endfor %} {% endfor %}
Technicien Lun Mar Mer Jeu Ven Sam Dim
{{ item.name }}

Minha compreensão do que está acontecendo:

$ (janela). carga (function carga modificações de mudança (0)

changeMonths chama a function fillCalendar para cada item (neste momento para testar existem dois itens (com id 1 e id 2)

Isto foi se eu tivesse um erro:

A instrução :

 var id = $(cal).attr('id'); 

não obtém o id – é indefinido

Mas a variável cal recebida como parâmetro é cal1 e depois cal2 e deve retornar o id, significando cal1 ou cal2.

Alguém poderia me ajudar a resolver esse problema?

EDIT: Eu segui a resposta do ihsan – é melhor agora, mas apenas a primeira linha do calendar se enche de meses

 console.log(cal); shows now : #cal1 #cal2 

EDIT 2: Ok, tive que modificar meu html para fazer o cal2 funcionar também – obrigado pela sua ajuda