找到元素DOM(阴影或光)的根节点的最佳方法是什么

时间:2014-07-04 17:06:16

标签: javascript web-component shadow-dom

我想找到给定元素的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

2 个答案:

答案 0 :(得分:3)

您可以使用ownerDocument

element.ownerDocument;

答案 1 :(得分:1)

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

快速注意:目前IE / Edge不支持