copies = document.querySelectorAll("[data-copy]"); Array.from(copies).forEach((copy) => { clipboard = document.createElement("button"); clipboard.classList.add("clipboard"); clipboard.innerHTML = "Copy to clipboard"; insertAfter(clipboard, copy); clipboard.addEventListener("click", (e) => { navigator.clipboard.writeText(copy.dataset.copy).then( function () { clipboard.innerHTML = "Copied!"; }, function (err) { console.error("Async: Could not copy text: ", err); } ); }); }); function insertAfter(newNode, referenceNode) { referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling); }