table4js.js 1.4 KB

1234
  1. function Table(data,opts){this.opts=opts;this.setData(data)}Table.prototype.makeCell=function(data){var td=document.createElement("td");td.textContent=data;return td};
  2. Table.prototype.draw=function(container){var table=document.createElement("table"),header=document.createElement("tr"),lis=[];for(var i=0;i<this.header.length;i++)header.innerHTML+="<td>"+this.header[i]+"</td>";for(var i=0;i<this.data.length;i++)for(var j=0;j<this.data[i].length;++j){var td=this.makeCell(this.data[i][j]);if(j===0){var tr=document.createElement("tr");tr.appendChild(td);lis.push(tr)}else lis[i].appendChild(td)}table.innerHTML="<thead>"+header.outerHTML+"</thead><tbody>";for(var j=0;j<
  3. this.data.length;++j)table.innerHTML+=lis[j].outerHTML;table.innerHTML+="</thead>";container.appendChild(table)};Table.prototype.setDataObjHeadToArray=function(data){var nbRow=undefined;this.header=[];this.data=[];for(var i in data){if(!_isArray(data[i]))throw{};if(nbRow===undefined){nbRow=data[i].length;for(var j=0;j<nbRow;++j)this.data.push([])}else if(nbRow!==data[i].length)throw{};for(var j=0;j<nbRow;++j)this.data[j].push(data[i][j]);this.header.push(i)}};Table.prototype.setData=function(data){try{this.setDataObjHeadToArray(data)}catch(e){}};
  4. function makeTable(container,data,opts){var table=new Table(data,opts);table.draw(container);return table};function _isArray(a){if(Array.isArray)return Array.isArray(a);return a instanceof Array};