Situación especifica: Celda dinámica y su contenido

Publicar una respuesta


Esta pregunta es una forma de evitar inserciones automatizadas por spambots.
Emoticonos
:-) ;) :rolls eyes: :-/ :-( =-O :-D :-* :-P :-[ :-! 8-) :bitchin:
Ver más emoticonos

BBCode está habilitado
[img] está habilitado
[Flash] está deshabilitado
[url] está habilitado
Emoticonos están habilitados

Revisión de tema
   

Expandir vista Revisión de tema: Situación especifica: Celda dinámica y su contenido

Situación especifica: Celda dinámica y su contenido

por pistachu » Mar Nov 27, 2012 1:10 pm

Buenas:
Tengo un archivo html que simplificado sería

Código: Seleccionar todo

<html>
<body>
  <table id="MiTabla">
    <tbody></tbody>
  </table>
</body>
</html>
y un javascript que genera la tabla dinámicamente mediante los métodos de "DOM":

Código: Seleccionar todo

function crea_tabla(){
        var n=5;//filas
        var n2=4;//columnas
	var tblBody = document.getElementById("MiTabla").getElementsByTagName("tbody")[0];
	for (var f=0;f<n;f++) {
		var fila = document.createElement("tr");
		for (var c=0;c<n2;c++) {
			var celda = document.createElement("td");
			var textoCelda;
			textoCelda = document.createTextNode("Texto de ejemplo (en la versión final varía según la celda, en función de condiciones y demás)");
                         //trozo problemático de código
			celda.addEventListener("click",function(){celda_click(celda.innerHTML);},false);
                        //resto de código  
			celda.appendChild(textoCelda);
			celda.setAttribute("class","calendario_celda");
			fila.appendChild(celda);
		}
		tblBody.appendChild(fila);
	}	
}
function celda_click(str){
	alert("Evento"+str);
}
Pues bien, con este código lo que quiero es que al hacer click en una celda especifica, se mande el contenido de esa celda como parámetro a la función celda_click(str). Pero el trozo de "celda.addEventListener" no termina de funcionarme, porque aunque la llamada a la función se realiza y se ejecuta la alerta, no consigo que se pase el contenido de la celda como parámetro. He probado con celda.innerHTML, textContent, con textoCelda, con TextoCelda.nodeValue... pero no lo consigo. Si en cambio llamado a la función escribiendo: "celda.addEventListener("click",function(){celda_click("Texto de prueba");},false);" entonces la cadena de texto sí se muestra en la alerta, pero eso no me sirve :-(

Si alguién me ilumina se lo agradezco, que me he atascado en este punto y no puedo continuar con mi desarrollo.

Arriba