65

I am dynamically adding columns to a table by using document.createElement("th")

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

Is there a way to set an onClick attribute for this so a user can delete the column by clicking on the header? Any help would be great. If this is not possible, is it possible to put something in

newTH.innerHTML

to make it work?

Brian Tompsett - 汤莱恩
  • 5,438
  • 68
  • 55
  • 126
daniel langer
  • 1,775
  • 2
  • 15
  • 19

4 Answers4

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

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

Working example: http://jsfiddle.net/23tBM/

You can also just hide with this.style.display = 'none'.

trumank
  • 2,564
  • 2
  • 21
  • 30
15
var newTH = document.createElement('th');
newTH.onclick = function() {
      //Your code here
}
Ahmed Hegazy
  • 12,051
  • 5
  • 36
  • 62
Someth Victory
  • 4,322
  • 2
  • 21
  • 27
10
var newTH = document.createElement('th');
newTH.setAttribute("onclick", "removeColumn(#)");
newTH.setAttribute("id", "#");

function removeColumn(#){
// remove column #
}
Arthur Choate
  • 403
  • 4
  • 19
9
var newTH = document.createElement('th');
newTH.addEventListener( 'click', function(){
  // delete the column here
} );
Sirko
  • 69,531
  • 19
  • 142
  • 174