Node: contains() 方法

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

Node 接口的 contains() 方法返回一个布尔值,指示一个节点是否为给定节点的后代节点,也就是说,该节点本身、其某个直接子节点(childNodes)、子节点的某个直接子节点,以此类推。

注意: 一个节点包含它自身。

语法

js
contains(otherNode)

参数

otherNode

要测试的 Node

注意: otherNode 不是可选的,但可以设置为 null

返回值

如果 otherNode 包含在节点中,则返回 true;否则返回 false

如果 otherNode 参数为 null,则 contains() 始终返回 false

示例

此函数用于检查一个元素是否在页面的 body 中。由于 contains 是包含性的,而确定 body 是否包含自身并不是 isInPage 的意图,因此在这种情况下显式返回 false

js
function isInPage(node) {
  return node === document.body ? false : document.body.contains(node);
}

规范

规范
DOM
# ref-for-dom-node-contains①

浏览器兼容性

另见