我想找到给定元素的 DOM 范围。换句话说,包含它的文档或文档片段。
有什么比下面的代码更好/更快的吗?
function getRootNode( element ){
if( document.contains(element) ){
return document;
}
var root = element;
while( root.parentNode ){
root = root.parentNode;
}
return root;
}
我想找到给定元素的 DOM 范围。换句话说,包含它的文档或文档片段。
有什么比下面的代码更好/更快的吗?
function getRootNode( element ){
if( document.contains(element) ){
return document;
}
var root = element;
while( root.parentNode ){
root = root.parentNode;
}
return root;
}
您可以使用ownerDocument
:
element.ownerDocument;
Node.getRootNode() 是在影子 dom 中执行此操作的最佳方法,它将返回影子根,否则它将返回文档。请参阅:https ://developer.mozilla.org/en-US/docs/Web/API/Node/getRootNode
快速说明:目前 IE/Edge 不支持