This week only. Pastebin PRO Accounts Christmas Special! Don't miss out!Want more features on Pastebin? Sign Up, it's FREE!
Guest

Untitled

By: a guest on Nov 9th, 2012  |  syntax: JavaScript  |  size: 2.38 KB  |  views: 28  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  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. };
clone this paste RAW Paste Data