Re: [whatwg/dom] Proposal to improve the DOM creation api (#150)

it's this more or less?
```js
const safeAttrs = new Set(['textContent', 'id', 'className', 'htmlFor', 'disabled', 'checked', 'autocomplete', 'crossorigin', 'async', 'innerHTML']); // probably missing some
// html helper, usage:: var span = $('span', 'Hello'), div = h('div', {id:'test', onClick:console.log}, span, 'test2')
function $(tag, ...o){
 const el = document.createElement(tag);
 const childrenIndex = o.findIndex(x => typeof x=='string' || typeof x=='number' || x instanceof Node);
 const props = Object.assign({}, ...o.slice(0,childrenIndex);
 for (var k in props) {
  const value = props[k];
  if (typeof value=='function') {
   const name = k.slice(2).toLowerCase();
   el.addEventListener(name, value);
  } else {
   if (k=='style') Object.assign(el.style, value);
   else if (safeAttrs.has(k)) el[k] = value;
   else if (typeof value=='string') el.setAttribute(k, value);
  }
 }
 el.append(...o.slice(childrenIndex));
 return el;
}
```

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/whatwg/dom/issues/150#issuecomment-317920802

Received on Wednesday, 26 July 2017 01:35:00 UTC