drak138

CreateElement

Jul 1st, 2024
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function ce(type, attributes, ...content) {
  2.     const result = document.createElement(type);
  3.  
  4.     Object.entries(attributes || {})
  5.         .forEach(([attribute, value]) => {
  6.             if (isEventListener(attribute)) {
  7.                 result.addEventListener(attribute.substring(2).toLocaleLowerCase(), value);
  8.             } else {
  9.                 result[attribute] = value;
  10.             }
  11.         });
  12.  
  13.     content = content.reduce((a, c) => a.concat(Array.isArray(c) ? c : [c]), []);
  14.  
  15.     content.forEach(e => {
  16.         if (isElement(e)) {
  17.             result.appendChild(e);
  18.         } else {
  19.             const node = document.createTextNode(e);
  20.             result.appendChild(node);
  21.         }
  22.     });
  23.  
  24.     return result;
  25.  
  26.     function isEventListener(attr) {
  27.         return attr.substring(0, 2).localeCompare('on') === 0;
  28.     }
  29.  
  30.     function isElement(element) {
  31.         return typeof element != 'string' && typeof element != 'number';
  32.     }
  33. }
Add Comment
Please, Sign In to add comment