方法 - htmx.closest()

htmx.closest(selector, startingElement) 是一个 HTMX 提供的实用函数,功能类似原生的 Element.closest(),但可以处理一些额外的情况,比如跨 shadow DOM。

它用于从指定元素(startingElement)开始,向上查找最近的匹配 selector 的父级元素。

语法

htmx.closest(selector, startingElement);
  • selector:CSS 选择器;

  • startingElement:起始查找的元素;

  • 返回值:找到的最近祖先元素,或 null(未找到);

参数

  • elt - 要根据选择器查找的元素
  • selector - 要查找的选择器

示例:查找最近的 .card 元素

<div class="card">
  <div class="info">
    <button onclick="highlightCard(this)">点击我</button>
  </div>
</div>

<script>
  function highlightCard(btn) {
    const card = htmx.closest('.card', btn);
    if (card) {
      card.style.border = '2px solid red';
    }
  }
</script>

与原生 element.closest() 的区别

特点 element.closest() htmx.closest()
原生支持 否(HTMX 提供)
可穿透 shadow DOM 是(HTMX 可以跨 DOM 层级)
使用方式 el.closest('form') htmx.closest('form', el)