A tool to create DOM elements dynamically with a simple syntax
Is really simple to use, you can create a chain of elements with semantic in pure javaScript avoiding to nomeate a huge amount of variables.
Every createElement call is a element creation stack, then you can set a huge amount of properties to your elements!
You can insert the script tag in your HTML:
Download the script from https://raw.githubusercontent.com/hfabio/Nova/master/Nova.dev.js
and insert in your HTML using:
<script type="text/javascript" src="Nova.dev.js"></script>
Download the script from https://raw.githubusercontent.com/hfabio/Nova/master/Nova.min.js
and insert in your HTML using:
<script type="text/javascript" src="Nova.min.js"></script>
after install you can create a HTML node/nodelist using this tool like this: call the createElement method (and don't forget it receives an object with some properties) and then add to the DOM. you can set in the method these parameters:
Attribute | Type | Default value | Description |
---|---|---|---|
type | string | div | The HTMLElement to be created. |
classes | string | Array | '' | A string with a class or an array of classes E.g. classes: 'card' | classes: ['btn', 'btn-bg', 'btn-success'] |
style | {[key:string]:string} | {} | Receive an object with css properties using camel case to set in element. E.g. style: {fontSize: '24px'} |
html | string | '' | Same as element innerHTML, you can type anything here E.g. html:'Hello world' |
attributes | {[key:string]:string} | {} | Receive an object where the key is the element attribute caller (like 'onclick') and the value is a string calling an method. E.g. attribues: {onclick: 'someFunction()'} |
listeners | {[key:string]: function reference} | {} | Receive an object where the key is the element eventListener caller (like 'click') and the value is a reference to an method. E.g. listeners: {click: someFunction} |
children | Array | [] | Receive a HTMLElement array, and you can use this feature to create a stack of elements. E.g. createElement({type: 'div', children: [ createElement({type: 'h1', html: 'Hello world'}),createElement({type: 'h2', html: 'Nova is here!'}), ]}) |
let element = createElement({ type: 'span', html: 'Hello world!'});
document.body.appendChild(element);
let element = createElement({ type: 'span', html: 'Hello world! click me', attributes: { onclick: 'alert("teste")' }});
document.body.appendChild(element);
let shop_list = ['beans', 'floor', 'butter', 'soda'];
let element = createElement({
type: 'ul',
children: shop_list.map(item => createElement({type: 'li', html: item}))
});
document.body.appendChild(element);