JSFiddle - React, Tailwind, and code Playground
HTML
<ul class="tags" data-prototype="<div><label class=" required">__name__</label><div id="task_tags___name__"><div><label for="task_tags___name___name" class=" required">Name</label><input type="text" id="task_tags___name___name" name="task[tags][__name__][name]" required="required" maxlength="255" /></div></div></div>" data-index="0">
</ul>
CSS
li * {
display:inline-block;
margin:0 10px;
}
JavaScript
const addTagLink = document.createElement('a')
addTagLink.classList.add('add_tag_list')
addTagLink.href='#'
addTagLink.innerText='Add a tag'
addTagLink.dataset.collectionHolderClass='tags'
const newLinkLi = document.createElement('li').append(addTagLink)
const collectionHolder = document.querySelector('ul.tags')
collectionHolder.appendChild(addTagLink)
const addFormToCollection = (e) => {
const collectionHolder = document.querySelector('.' + e.currentTarget.dataset.collectionHolderClass);
const item = document.createElement('li');
item.innerHTML = collectionHolder
.dataset
.prototype
.replace(
/__name__/g,
collectionHolder.dataset.index
);
collectionHolder.appendChild(item);
collectionHolder.dataset.index++;
}
addTagLink.addEventListener("click", addFormToCollection)