Advertisement
Guest User

Untitled

a guest
Mar 10th, 2017
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function () {
  2.     function validateParameter(param) {
  3.  
  4.         if (typeof param === 'undefined' || param === '' || param === null) {
  5.             throw Error('Invalid function parameter');
  6.         }
  7.  
  8.     }
  9.  
  10.     function validateElement(element) {
  11.  
  12.         validateParameter(element);
  13.  
  14.         if (typeof element !== 'object' && typeof element !== 'string') {
  15.             throw Error('Invalid element');
  16.         }
  17.  
  18.     }
  19.  
  20.     function validateContents(contents) {
  21.  
  22.         validateParameter(contents);
  23.  
  24.         if (typeof contents !== 'object') {
  25.             throw Error('Invalid contents');
  26.         }
  27.         if (!Array.isArray(contents)) {
  28.             throw Error('contents must be array');
  29.         }
  30.         contents.forEach(function (x) {
  31.             if (typeof x !== 'string' && typeof x !== 'number') {
  32.                 throw Error('Invalid parameter in contents');
  33.             }
  34.         });
  35.     }
  36.  
  37.     function getElement(element) {
  38.  
  39.         if (typeof element === 'string') {
  40.             const el = document.getElementById(element);
  41.             if (!el) {
  42.                 throw Error('Invalid id selector');
  43.             }
  44.             return el;
  45.         }
  46.         return element;
  47.     }
  48.  
  49.     function appendContentsToElement(element, contents) {
  50.  
  51.         element.innerHTML = '';
  52.  
  53.         const docFr = document.createDocumentFragment();
  54.         const div = document.createElement('div');
  55.  
  56.         contents.forEach(function (x) {
  57.             const itemToAdd = div.cloneNode(true);
  58.             itemToAdd.innerHTML += x;
  59.             docFr.appendChild(itemToAdd);
  60.         });
  61.  
  62.         element.appendChild(docFr);
  63.     }
  64.  
  65.     return function (element, contents) {
  66.         validateElement(element);
  67.         validateContents(contents);
  68.         element = getElement(element);
  69.         appendContentsToElement(element, contents);
  70.     };
  71. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement