1

我想找到给定元素的 DOM 范围。换句话说,包含它的文档或文档片段。

有什么比下面的代码更好/更快的吗?

function getRootNode( element ){
  if( document.contains(element) ){
    return document;
  }

  var root = element;
  while( root.parentNode ){
    root = root.parentNode;
  }
  return root;
}

http://jsbin.com/rudik/4/edit

4

2 回答 2

4

您可以使用ownerDocument

element.ownerDocument;
于 2014-07-04T17:26:33.350 回答
1

Node.getRootNode() 是在影子 dom 中执行此操作的最佳方法,它将返回影子根,否则它将返回文档。请参阅:https ://developer.mozilla.org/en-US/docs/Web/API/Node/getRootNode

快速说明:目前 IE/Edge 不支持

于 2017-11-30T09:17:58.180 回答