This sample function accepts an array of "person" objects as the function argument and inserts a link on each cell showing the person object's properties namely the ID (person.id) and name (person.name). Just change this function's argument to suit your needs.
This function also creates a table with 2 columns. If you want to change the number of columns to 3 or more, simply change the value for the variable "maxCols". It is used against the variable "tdCtr" ( for td counter) as a conditional expression in the code. See the code for the conditional expression (tdCtr == maxCols). Change the value assigned to "maxCols" (i.e. maxCols = 2) to your desired number of columns.
function createTable(personList) { //get the node where you will append the new table var divPersonInfo = document.getElementById("divPersonInfo");
//create elements <table> var tbl = document.createElement("table"); tbl.className = "otherPartTerms"; //create the <thead> element and add it to the table var header = tbl.createTHead(); //create the <tr> element for the thead var tr = document.createElement("tr"); //create the <th> element for the tr var th = document.createElement('th'); th.innerHTML = "Your contact list:" th.colSpan = 2; //append the new <th> element to the <tr> element tr.appendChild(th); //append the <tr> element to the <thead> element header.appendChild(tr);
//create <tbody> element
var tblBody = document.createElement("tbody");
//set the td counter
var tdCtr = 0;
//set the maximum # of columns for this table
var maxCols = 2; var trAppendedToBody = true; for (var i = 0; i < personList.length; i++) { var person = personList[i]; //tr creation if (tdCtr == 0) { var tr = document.createElement("tr"); trAppendedToBody = false; } //td creation var td = document.createElement("td"); td.innerHTML = "<a href=\"#\" class=\"personLink\" onclick=\"displayPersonInfo(this); return false;\" />" + person.id + " -- " + person.name + "</a>"; //append td to tr tr.appendChild(td); tdCtr = tdCtr+1; if (tdCtr == maxCols && i != personList.length - 1 ) { //append the current tr to tbody tblBody.appendChild(tr); //set vars tdCtr = 0; trAppendedToBody = true; } }; //if current tr did not have max # of td then it was not appended to the tbody if (!trAppendedToBody) {
//create empty tds and append to tr (so that css border will be displayed completely) for (var j = tdCtr; j <maxCols; j++) { var td = document.createElement("td"); tr.appendChild(td); } //append the current tr to tbody tblBody.appendChild(tr); } //append the tbody element to the new table element tbl.appendChild(tblBody); //append the newly created table to your target node divPersonInfo.appendChild(tbl); }
No comments:
Post a Comment