http://www.forosdelweb.com/f13/cambiar-color-td-con-dom-1114860/
http://www.forosdelweb.com/f13/crear-tabla-con-javascript-1114397/
En los que para resumir un poco tenía que crear una tabla con JavaScript y cambiar el color de una celda al pulsarla. Ahora bien lo que quiero hacer es que cuando pulse un botón las celdas que haya pulsado cambien de color y me aparezca un contador de cuantas de estas casillas hay pulsadas. Bien hasta ahora mi código HTML es el siguiente que de momento no me esta dando ningún problema:
Código HTML:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript" src="js/funciones.js"></script> </head> <body onload="crearTabla()"> <header></header> <article> <section id="butaca"> <p id="numsala"></p> <p id="titulo"></p> <table id="tabla"></table> <div id="reservar"> <p>Cuantos con precio reducido</p> <input type="text"><br> <button id="comprar">Comprar</button> </div> </section> </article> </body> </html>
Código Javascript:
Ver original
var columna=new Array(); columna[0]=1; columna[1]=2; columna[2]=3; columna[3]=4; columna[4]=5; columna[5]=6; var filas=new Array(); filas[0]=1; filas[1]=2; filas[2]=3; filas[3]=4; filas[4]=5; var tabla=new Array(); tabla[0]=columna; tabla[1]=filas; function crearTabla(){ var tbl = document.getElementById("tabla"); var tblBody = document.createElement("tbody"); for (var i = 0; i < columna.length; i++) { var fila = document.createElement("tr"); for (var j = 0; j < filas.length; j++) { var celda = document.createElement("td"); celda.onclick=function(){ var div=document.getElementById("reservar"); div.style.display='block'; var compra=document.getElementById("comprar"); compra.onclick=function(){ if(celda.style.background=='orange'){ celda.style.background='red'; } } if(this.style.background=='green'){ this.style.background='orange'; } else{ this.style.background='green'; } } var textoCelda = document.createTextNode(i+"-"+j); celda.appendChild(textoCelda); fila.appendChild(celda); } tblBody.appendChild(fila); } tbl.appendChild(tblBody); tbl.setAttribute("border", "2"); }
El caso es que lo he intentado hacer de esta otra forma y no me funciona tampoco:
Código Javascript:
Ver original
var compra=document.getElementById("comprar"); celda.onclick=function(){ var div=document.getElementById("reservar"); div.style.display='block'; if(this.style.background=='green'){ this.style.background='orange'; } else{ this.style.background='green'; } } compra.onclick=function(){ if(celda.style.background=='orange'){ celda.style.background='red'; } }
¿Que solución puede tener este problema?