Introduction
Introduction Statistics Contact Development Disclaimer Help
datatable: simplify and cleanup some code - jscancer - Javascript crap (relativ…
git clone git://git.codemadness.org/jscancer
Log
Files
Refs
README
LICENSE
---
commit 8f13ca642d42f2de56679e408389922c9f06f214
parent fa112f42ca153afa96c3c8fc251fa1d170de2beb
Author: Hiltjo Posthuma <[email protected]>
Date: Wed, 16 Aug 2017 18:34:42 +0200
datatable: simplify and cleanup some code
just fail loudly if a table has no <thead> or <tbody>.
Diffstat:
M datatable/datatable.js | 59 +++++++++++------------------…
1 file changed, 20 insertions(+), 39 deletions(-)
---
diff --git a/datatable/datatable.js b/datatable/datatable.js
@@ -8,16 +8,10 @@ function datatable_sort_default(x, y) {
}
function datatable_init(el) {
- var thead = el.getElementsByTagName("thead");
- if (!thead.length)
- return null;
- var tbody = el.getElementsByTagName("tbody");
- if (!tbody.length)
- return null;
- var ths = thead[0].children[0].children;
- if (!ths.length)
- return null;
- var cols = [];
+ var thead = el.tHead,
+ tbody = el.tBodies[0];
+ var ths = thead.children[0].children,
+ cols = [];
for (var i = 0; i < ths.length; i++)
cols.push({
filterable: ["1", "true"].indexOf(ths[i].getAttribute(…
@@ -27,9 +21,9 @@ function datatable_init(el) {
});
var d = {
table: el,
- thead: thead[0],
+ thead: thead,
ths: ths,
- tbody: tbody[0],
+ tbody: tbody,
cols: cols,
sort: [], // sort options: [colidx, order (ASC = 0, DESC = 1)…
lazyscroll: ["1", "true"].indexOf(el.getAttribute("data-lazysc…
@@ -40,45 +34,32 @@ function datatable_init(el) {
if (d.lazyscroll) {
var bodytable = document.createElement("table");
bodytable.className = el.className;
- bodytable.setAttribute("cellspacing", "0");
- bodytable.setAttribute("cellpadding", "0");
- bodytable.setAttribute("border", "0");
+ bodytable.cellSpacing = bodytable.cellPadding = bodytable.bord…
+ var headerstable = bodytable.cloneNode(true);
- var tr = document.createElement("tr");
- for (var i = 0; i < ths.length; i++) {
- var th = ths[i].cloneNode(true);
- th.innerHTML = "";
- tr.appendChild(th);
- }
- var bodythead = document.createElement("thead");
- bodythead.appendChild(tr);
-
- tr = document.createElement("tr");
- var newths = [];
- for (var i = 0; i < ths.length; i++)
- newths.push(tr.appendChild(ths[i].cloneNode(true)));
- d.ths = newths; // set new columns (for sorting etc)..
- var elthead = document.createElement("thead");
+ var elthead = document.createElement("thead"),
+ tr = thead.children[0].cloneNode(true);
+ d.ths = tr.children; // set new columns (for sorting etc)..
elthead.appendChild(tr);
- var headerstable = document.createElement("table");
- headerstable.setAttribute("cellspacing", "0");
- headerstable.setAttribute("cellpadding", "0");
- headerstable.setAttribute("border", "0");
- headerstable.className = el.className;
headerstable.appendChild(elthead);
+ tr = tr.cloneNode(true);
+ for (var i = 0; i < tr.children.length; i++)
+ tr.children[i].innerHTML = "";
+ var bodythead = document.createElement("thead");
+ bodythead.appendChild(tr);
+ bodytable.appendChild(bodythead);
+
var headersel = document.createElement("div");
headersel.className = "datatable-lazyscroll-headers";
headersel.appendChild(headerstable);
- bodytable.appendChild(bodythead);
-
- var bodyel = document.createElement("div");
+ var bodyel = headersel.cloneNode(false);
bodyel.className = "datatable-lazyscroll-body";
bodyel.appendChild(bodytable);
- var containerel = document.createElement("div");
+ var containerel = headersel.cloneNode(false);
containerel.className = "datatable-lazyscroll-container";
containerel.appendChild(headersel);
containerel.appendChild(bodyel);
You are viewing proxied material from codemadness.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.