使用 JavaScript 检查父元素是否有特定的类
JavaScript 中要检查父元素是否具有特定类:
- 使用 方法,将其作为参数传递给类选择器。
- 如果存在具有特定类的父级,则该方法返回该元素。
- 如果不存在具有所提供类的父级,则该方法返回 null。
以下是本文示例的 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
我们使用 方法来选择具有 parent-1 类的父元素。
方法遍历元素及其父元素,直到找到与提供的选择器匹配的节点。
如果元素本身与选择器匹配,则返回该元素。如果不存在与提供的选择器匹配的元素,则 方法返回 null。
变量存储一个布尔值:
- 如果 id 为 child 的 div 的父元素包含 parent-1 类,则为真。
- 如果没有则为假。
这种方法不会专门检查直接父元素是否包含该类,它会检查层次结构中任何位置的父元素是否包含提供的类。
要检查元素的直接父级是否具有特定类:
- 使用 属性选择元素的父级。
- 使用 方法检查父类是否包含该类。
- 如果元素的类列表包含该类,则该方法返回 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
属性返回 DOM 节点的父元素,如果节点没有父元素或其父元素不是 DOM 元素,则返回 null。
如果元素没有父元素,我们使用可选的链接 (?.) 运算符来短路而不是抛出错误。
方法返回一个布尔值——如果该类包含在元素的类列表中则为 true,否则为 false。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。