const dedupe = (): void => { const seen = new Set(); const elements = document.querySelectorAll("[data-id]"); elements.forEach((item) => { const id = item.getAttribute("data-id"); if (!id) { return; } if (seen.has(id)) { item.remove(); // duplicate, remove it } else { seen.add(id); } }); }; // run on DOM ready or immediately if already loaded if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", dedupe); } else { dedupe(); } // also run on load as a fallback (e.g. htmx swaps) window.addEventListener("load", dedupe);