迹忆客 专注技术分享

当前位置:主页 > 学无止境 > WEB前端 > JavaScript >

使用 JavaScript 检查父元素是否有特定的类

作者:迹忆客 最近更新:2022/12/15 浏览次数:

JavaScript 中要检查父元素是否具有特定类:

  1. 使用 closest() 方法,将其作为参数传递给类选择器。
  2. 如果存在具有特定类的父级,则该方法返回该元素。
  3. 如果不存在具有所提供类的父级,则该方法返回 null。

以下是本文示例的 HTML。

index.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
  </head>

  <body>
    <div class="parent-1">
      <div class="parent2">
        <div id="child">Box 1</div>
      </div>
    </div>

    <script src="index.js"></script>
  </body>
</html>

下面是JavaScript代码

// ✅ Check if any of the parent elements have class `parent-1`
const child = document.getElementById('child');
const parentHasClass = child.closest('.parent-1') !== null;

console.log(parentHasClass); // 👉️ true

// ✅ Check if DIRECT parent element has class `parent-1`.
const directParentHasClass =
  child.parentElement?.classList.contains('parent-1');
console.log(directParentHasClass); // 👉️ false

我们使用 Element.closest() 方法来选择具有 parent-1 类的父元素。

closest() 方法遍历元素及其父元素,直到找到与提供的选择器匹配的节点。

如果元素本身与选择器匹配,则返回该元素。如果不存在与提供的选择器匹配的元素,则 closest() 方法返回 null。

parentHasClass 变量存储一个布尔值:

  • 如果 id 为 child 的 div 的父元素包含 parent-1 类,则为真。
  • 如果没有则为假。

这种方法不会专门检查直接父元素是否包含该类,它会检查层次结构中任何位置的父元素是否包含提供的类。

要检查元素的直接父级是否具有特定类:

  1. 使用 parentElement 属性选择元素的父级。
  2. 使用 classList.contains() 方法检查父类是否包含该类。
  3. 如果元素的类列表包含该类,则该方法返回 true,否则返回 false。
const child = document.getElementById('child');

// ✅ Check if DIRECT parent element has class `parent-1`.
const directParentHasClass =
  child.parentElement?.classList.contains('parent-1');
console.log(directParentHasClass); // 👉️ false

parentElement 属性返回 DOM 节点的父元素,如果节点没有父元素或其父元素不是 DOM 元素,则返回 null。

如果元素没有父元素,我们使用可选的链接 (?.) 运算符来短路而不是抛出错误。

classList.contains 方法返回一个布尔值——如果该类包含在元素的类列表中则为 true,否则为 false。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便