Advertisement
Guest User

Untitled

a guest
Nov 9th, 2012
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var rowhider = function() {
  2.     var tables = document.getElementsByTagName('tbody');
  3.     var maxRows = 5;
  4.     var colspan;
  5.     for(var i = 0, l = tables.length; l > i; i++) {
  6.         var rows = tables[i].getElementsByTagName('tr');
  7.         colspan = rows[0].getElementsByTagName('td').length;
  8.         if(rows.length > maxRows) {
  9.             for(var a = 0, e = rows.length; e > a; a++) {
  10.                 if(a >= 5) {
  11.                     rows[a].className += " hide";
  12.                 }
  13.             }
  14.             var tr = document.createElement('tr');
  15.             tr.innerHTML = "<td colspan='"+colspan+"'><a href='#'>More rows. Click to show...</a></td>";
  16.             tr.getElementsByTagName('a')[0].addEventListener ? tr.getElementsByTagName('a')[0].addEventListener('click',showRows) : tr.getElementsByTagName('a')[0].attachEvent('onclick',showRows);
  17.             tables[i].appendChild(tr);
  18.         }
  19.     }
  20.     function hideRows(e) {
  21.         var target = e.srcElement ? e.srcElement : e.target;
  22.         var tr = target.parentElement;
  23.         while(tr.nodeName !== "TR") {
  24.             tr = tr.parentElement;
  25.         }
  26.         var table = target;
  27.         while(table.nodeName !== "TBODY") {
  28.             table = table.parentElement;
  29.         }
  30.         table.removeChild(tr);
  31.         var rows = table.getElementsByTagName('tr');
  32.         for(var i = 0, l = rows.length; l > i; i++) {
  33.             if(i >= 5) {
  34.                 rows[i].className += " hide";
  35.             }
  36.         }
  37.         var tr = document.createElement('tr');
  38.         tr.innerHTML = "<td colspan='"+colspan+"'><a href='#'>More rows. Click to show...</a></td>";
  39.         tr.getElementsByTagName('a')[0].addEventListener ? tr.getElementsByTagName('a')[0].addEventListener('click',showRows) : tr.getElementsByTagName('a')[0].attachEvent('onclick',showRows);
  40.         table.appendChild(tr);
  41.     }
  42.     function showRows(e) {
  43.         var target = e.srcElement ? e.srcElement : e.target;
  44.         var tr = target.parentElement;
  45.         while(tr.nodeName !== "TR") {
  46.             tr = tr.parentElement;
  47.         }
  48.         var table = target;
  49.         while(table.nodeName !== "TBODY") {
  50.             table = table.parentElement;
  51.         }
  52.         var rows = table.getElementsByTagName('tr');
  53.         for(var i = 0, l = rows.length; l > i; i++) {
  54.             var n = rows[i].className.replace(' hide','');
  55.             rows[i].className = n;
  56.         }
  57.         tr.innerHTML = "<td colspan='"+colspan+"'><a href='#'>...hide rows</a></td>";
  58.         tr.getElementsByTagName('a')[0].addEventListener ? tr.getElementsByTagName('a')[0].addEventListener('click',hideRows) : tr.getElementsByTagName('a')[0].attachEvent('onclick',hideRows);
  59.         if(e.preventDefault) {
  60.             e.preventDefault();
  61.         } else {
  62.             return false;
  63.         }
  64.     }
  65. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement