Tengo un problema con un calendario que estoy montando.
El problema es que no me añade una linea nueva cada semana y me salen los dias del mes en una sola. En principio debería funcionar porque he metido un contador que cuando es divisible entre 7 me añade una nueva linea. Pero no funciona eso, y no se porque.
Os dejo el código:
Código Javascript
:
Ver originalfunction calendario() {
var fechaActual = new Date();
var anoActual = fechaActual.getFullYear(); // Año actual
meses = ['Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'];
if ((anoActual%4==0) && ((anoActual%100!= 0) || (anoActual%400==0))) { // Si es bisiesto o no
diasPorMes = ['31','29','31','30','31','30','31','31','30','31','30','31'];
} else {
diasPorMes = ['31','28','31','30','31','30','31','31','30','31','30','31'];
}
diasSemana = ['Domingo', 'Lunes','Martes','Miercoles','Jueves','Viernes','Sabado'];
$("#contenedor").append("<div id='calendario'></div>");
for(var i=0;i<meses.length;i++) { // Muestro los 12 meses
var contadorMeses = 1;
var contador=0; // Contador que rompe la semana cada 7 dias
$("#calendario").append("<table id='"+meses[i]+"'>");
$("#"+meses[i]).append("<tr><td colspan='7'>"+meses[i]+"</td></tr>");
$("#"+meses[i]).append("<tr><td>D</td><td>L</td><td>M</td><td>Mi</td><td>J</td><td>V</td><td>S</td></tr>");
$("#"+meses[i]).append("<tr>"); // Nueva linea por semana
fecha = new Date(contadorMeses+"/1/"+anoActual);
primerDia = new Date(fecha.getFullYear(), fecha.getMonth(), 1).getDay();
for(var j=0;j<primerDia;j++) { // Espacios en blanco antes del primer dia
$("#"+meses[i]).append("<td style='border:1px solid #000;'></td>");
contador++;
}
for(var j=1;j<=diasPorMes[i];j++) {
if(contador%7==0) { // Rotura de semana cada 7 dias
$("#"+meses[i]).append("</tr><tr>");
}
$("#"+meses[i]).append("<td style='border:1px solid #000;'>"+j+"</td>");
contador++;
}
$("#"+meses[i]).append("</tr>");
$("#"+meses[i]).append("</table>");
contadorMeses++;
}
}
De hecho, si pongo un alert cuando el contador es divisible entre 7 me bien, pero la nueva linea de la tabla no aparece.