var $s; setTimeout(function(){ $s = nbInit({ text1: "txt", p1: "para", select: {"": "--", M: "Male", F: "Female", X: "Xenomorph"}, numberTable: [[1,2,3,4,5,6], [7,8,9,10,11,12], [13,14,15,16,17,18], [19,20,21,22,23,24]], hashTable: [{ name: "Ivan", surname: "Ivanovv", age: "57", note: {value: "Buhaet", name: 'ivanovvsTextArea'}, married: true}, { name: "Petr", surname: "Petroff", age: "17", note: "Tyolki v golove", married: false, }, { name: "Mary", surname: "Tester", married: true, note: "Ovulyashka", age: "27"} ], checks: [ {check: {name: "first", checked: true}, description: "first check"}, {check: {name: "second", checked: false}, description: "second check"}, {check: {name: "third", checked: true}, description: "third check"}, ], radios: [ {radio: {name: "sexism", value: "M"}, description: "Male"}, {radio: {name: "sexism", value: "F", checked: true}, description: "Female"}, {radio: {name: "racism", value: "white", checked: true}, description: "White"}, {radio: {name: "racism", value: "black"}, description: "Black"}, ], }); $s.textarea; $s.select; $s.dzen; $s.check1; $s.note; $s.married; //just for init $s.btn = {onclick: function(){ var thisLine = this.parentElement.parentElement; var newLine = thisLine.cloneNode(true); newLine.nbData = Object.assign({},thisLine.nbData); thisLine.parentElement.insertBefore(newLine,thisLine); $s.btn = {onclick: arguments.callee}; }}; document.onchange(); },2000); document.onchange = function(){ $s.state = ""; $s.state = JSON.stringify($s, null, 4); }