Перевод jquery кода в js довольно прост. За исключением этого случая, потому что на самом деле мне некуда проверять, работает ли он должным образом.
Это грубый перевод, и вполне вероятно, что он не сработает. Пожалуйста, постарайтесь исправить эти ошибки самостоятельно.
document.addEventListener("DOMContentLoaded", function(event) {
$.querySelector("#add").addEventListener("click", () => {
var lastField = document.querySelector("#buildyourform").lastElementChild;
var intId =
(lastField && lastField.length && lastField.data("idx") + 1) || 1;
var fieldWrapper = createElementFromHTML(
'<div class="fieldwrapper" id="field' + intId + '"/>'
);
fieldWrapper.data("idx", intId);
var fName = createElementFromHTML(
'<input type="text" class="fieldname" />'
);
var fType = createElementFromHTML(
'<select class="fieldtype"><option value="checkbox">Checked</option><option value="textbox">Text</option><option value="textarea">Paragraph</option></select>'
);
var removeButton = createElementFromHTML(
'<input type="button" class="remove" value="-" />'
);
removeButton.onclick(e => {
e.parentNode.removeChild(e.parentNode.parentNode); // You might have to play around with this one specifically
});
fieldWrapper.appendChild(fName);
fieldWrapper.appendChild(fType);
fieldWrapper.appendChild(removeButton);
document.querySelector("#buildyourform").appendChild(fieldWrapper);
});
});
function createElementFromHTML(htmlString) {
var div = document.createElement("div");
div.innerHTML = htmlString.trim();
// Change this to div.childNodes to support multiple top-level nodes
return div.firstChild;
}