使用 JavaScript 检查父元素是否有特定的类
JavaScript 中要检查父元素是否具有特定类:
-
使用
closest()
方法,将其作为参数传递给类选择器。 - 如果存在具有特定类的父级,则该方法返回该元素。
- 如果不存在具有所提供类的父级,则该方法返回 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 类,则为真。
- 如果没有则为假。
这种方法不会专门检查直接父元素是否包含该类,它会检查层次结构中任何位置的父元素是否包含提供的类。
要检查元素的直接父级是否具有特定类:
-
使用
parentElement
属性选择元素的父级。 -
使用
classList.contains()
方法检查父类是否包含该类。 - 如果元素的类列表包含该类,则该方法返回 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。
相关文章
使用 CSS 和 JavaScript 制作文本闪烁
发布时间:2023/04/28 浏览次数:146 分类:CSS
-
本文提供了使用 CSS、JavaScript 和 jQuery 使文本闪烁的详细说明。
在 PHP 变量中存储 Div Id 并将其传递给 JavaScript
发布时间:2023/03/29 浏览次数:69 分类:PHP
-
本文教导将 div id 存储在 PHP 变量中并将其传递给 JavaScript 代码。
在 JavaScript 中从字符串中获取第一个字符
发布时间:2023/03/24 浏览次数:93 分类:JavaScript
-
在本文中,我们将看到如何使用 JavaScript 中的内置方法获取字符串的第一个字符。
在 JavaScript 中获取字符串的最后一个字符
发布时间:2023/03/24 浏览次数:141 分类:JavaScript
-
本教程展示了在 javascript 中获取字符串最后一个字符的方法