方法 - htmx.takeClass()

htmx.takeClass(element, className) 是一个 HTMX 提供的辅助函数,用于从页面上所有带有指定 class 的同级元素中移除该 class,并将其添加到你指定的 element 上。

常用于“选中”、“激活”、“当前标签高亮”这类 UI 效果的切换。

参数

  • elt - 将添加类的元素
  • class - 要添加的类

语法

htmx.takeClass(targetElement, "your-class-name");

示例代码

<style>
  .active {
    background-color: #007bff;
    color: white;
  }
</style>

<nav>
  <a href="/tab1" hx-get="/tab1" hx-target="#content" onclick="htmx.takeClass(this, 'active')">Tab 1</a>
  <a href="/tab2" hx-get="/tab2" hx-target="#content" onclick="htmx.takeClass(this, 'active')">Tab 2</a>
  <a href="/tab3" hx-get="/tab3" hx-target="#content" onclick="htmx.takeClass(this, 'active')">Tab 3</a>
</nav>

<div id="content"></div>

点击某个 Tab 链接时,发出 HTMX 请求,替换 #content 的内容,当前链接自动获得 active 类,其他的失效。

等效的原生 JavaScript

function takeClass(element, className) {
  document.querySelectorAll("." + className).forEach(el => {
    el.classList.remove(className);
  });
  element.classList.add(className);
}