← All examples

JavaScript Reading & focus producthunt.com

Product Hunt: collapsible comment threads

Adds a collapse button to each top-level comment so you can quickly hide long threads.

Code to copy

// Add a click-to-collapse toggle to each top-level comment
(function () {
  function patch() {
    document.querySelectorAll('[data-test^="comment-"]').forEach(function (c) {
      if (c.dataset.jzCollapse) { return; }
      if (c.closest('[data-test^="comment-"] [data-test^="comment-"]')) { return; }
      c.dataset.jzCollapse = '1';
      var btn = document.createElement('button');
      btn.textContent = '[-]';
      btn.style.cssText = 'cursor:pointer;margin-right:6px;border:none;background:none;color:#da552f;font-weight:700;';
      btn.addEventListener('click', function () {
        var hidden = c.dataset.jzHidden === '1';
        Array.from(c.children).forEach(function (ch) {
          if (ch !== btn.parentNode) { ch.style.display = hidden ? '' : 'none'; }
        });
        c.dataset.jzHidden = hidden ? '0' : '1';
        btn.textContent = hidden ? '[-]' : '[+]';
      });
      var head = document.createElement('div');
      head.appendChild(btn);
      c.insertBefore(head, c.firstChild);
    });
  }
  patch();
  var obs = new MutationObserver(function () {
    clearTimeout(window.__jzPrhCollapse);
    window.__jzPrhCollapse = setTimeout(patch, 500);
  });
  obs.observe(document.body, { childList: true, subtree: true });
})();

How to use this example

  1. Copy the code with the button above.
  2. Install JustZix (2 minutes) and open the extension on the target page.
  3. Add a new rule matching that page.
  4. Paste the code into the rule's JavaScript panel and save — it runs on every page visit.

Rate this example

No ratings yet — be the first.

Does this example work?

Snippets are useless without somewhere to paste them.

JustZix takes 2 minutes to install and runs your code on every matching page. No account, no payment.

Download free See use cases