2012-06-13 18 views
19

Estoy añadiendo dinámicamente columnas a una tabla utilizando document.createElement("th")Añadir evento de clic a document.createElement ("th")

var newTH = document.createElement('th'); 

¿Hay una manera de establecer un atributo onClick de este modo un usuario puede eliminar la columna haciendo clic en el encabezado? Cualquier ayuda sería genial. Si esto no es posible, ¿es posible poner algo en

newTH.innerHTML 

para que funcione?

Respuesta

39
var newTH = document.createElement('th'); 
newTH.innerHTML = 'Hello, World!'; 
newTH.onclick = function() { 
    this.parentElement.removeChild(this); 
}; 

var table = document.getElementById('content'); 
table.appendChild(newTH); 

Ejemplo de trabajo: http://jsfiddle.net/23tBM/

También se puede simplemente ocultar con this.style.display = 'none'.

+0

esto elimina con éxito el encabezado, ¿alguna idea de cómo eliminar también las celdas debajo de él? –

+0

@daniellanger Eso se vuelve más complicado. – trumank

+0

lo descubrió. gracias –

8
var newTH = document.createElement('th'); 
newTH.onclick = function() { 
     //Your code here 
} 
+0

gracias, eso crea el evento! ¿Alguna idea sobre una forma simple de ocultar ese elemento dentro de la función? No tiene un ID o clase que lo haga un poco difícil –

+0

@daniellanger Mira mi respuesta. – trumank

2
var newTH = document.createElement('th'); 
newTH.addEventListener('click', function(){ 
    // delete the column here 
}); 
+0

Gracias Works Perfect A ++ –

Cuestiones relacionadas