Mi problema es el siguiente:
Estoy creando un calendario integramente con JavaScript y he conseguido cambiar de mes, de año, e incluso que reconozca los dias de casa mes. Lo he creado con tablas, a partir de la funcion createElement(). Pero al intentar seleccionar una celda no consigo que me reconozca una sezilla linea de codigo, en la que asigno el rojo como el color de fondo de la celda que llama a la funcion selectCelda().
El cogido JS de la funcion en cuestion es el siguiente:
Código:
Supongo que el problema es que al borrar el contenido del nodoTabla 4 con el bucle, me impide de algun modo, no se porque, que cambie el color de la celda recien creada.function selectCelda(celdaActual) { /* Si el contenido del campo de la fecha es igual al de la celda seleccionada lo borra y la deseleciona.*/ if (document.getElementById('formFecha').value == fechaCelda(celdaActual)) { celdaActual.style.backgroundColor = "white"; document.getElementById('formFecha').value = ""; return false; /* Si el contenido del campo de la fecha, no esta vacio ni es el actual, es decir, es otro, debe borrar y volver a crear la tabla para deseleccionar el otro, sea cual sea, y seleccionar el nuevo*/ } else if (document.getElementById('formFecha').value != "" && document.getElementById('formFecha').value != fechaCelda(celdaActual)) { while (nodoTabla4.firstChild) { nodoTabla4.removeChild(nodoTabla4.firstChild); } crearTabla4(); celdaActual.style.backgroundColor = "red"; document.getElementById('formFecha').value = fechaCelda(celdaActual); /*Si el campo de la fecha esta vacio selecciona la celda en cuestion.*/ } else { celdaActual.style.backgroundColor = "red"; document.getElementById('formFecha').value = fechaCelda(celdaActual); } }
El parametro celdaActual es siempre la propia celda que llama la funcion, pues al crear la celda le asigno el atributo onclick con el valor "selectCelda(this).
La funcion fechaCelda() es simplemente la que obtiene la cadena de texto a partir de contenido de la celda y de otras variables externas(como el mes y el año seleccionados).
El codigo completo es mucho mas largo, asi que si para entender el problema fuera necesario que pusiera algun otra funcion, pidanlo.
Gracias de antemano.