Document.createTreeWalker() - Web APIs 编辑

The Document.createTreeWalker() creator method returns a newly created TreeWalker object.

Syntax

document.createTreeWalker(root[, whatToShow[, filter[, entityReferenceExpansion]]]);

Parameters

root
A root Node of this TreeWalker traversal. Typically this will be an element owned by the document.
whatToShow Optional
A unsigned long representing a bitmask created by combining the constant properties of NodeFilter. It is a convenient way of filtering for certain types of node. It defaults to 0xFFFFFFFF representing the SHOW_ALL constant.
ConstantNumerical valueDescription
NodeFilter.SHOW_ALL-1 (that is the max value of unsigned long)Shows all nodes.
NodeFilter.SHOW_ATTRIBUTE This deprecated API should no longer be used, but will probably still work.2Shows attribute Attr nodes. This is meaningful only when creating a TreeWalker with an Attr node as its root; in this case, it means that the attribute node will appear in the first position of the iteration or traversal. Since attributes are never children of other nodes, they do not appear when traversing over the document tree.
NodeFilter.SHOW_CDATA_SECTION This deprecated API should no longer be used, but will probably still work.8Shows CDATASection nodes.
NodeFilter.SHOW_COMMENT128Shows Comment nodes.
NodeFilter.SHOW_DOCUMENT256Shows Document nodes.
NodeFilter.SHOW_DOCUMENT_FRAGMENT1024Shows DocumentFragment nodes.
NodeFilter.SHOW_DOCUMENT_TYPE512Shows DocumentType nodes.
NodeFilter.SHOW_ELEMENT1Shows Element nodes.
NodeFilter.SHOW_ENTITY This deprecated API should no longer be used, but will probably still work.32Shows Entity nodes. This is meaningful only when creating a TreeWalker with an Entity node as its root; in this case, it means that the Entity node will appear in the first position of the traversal. Since entities are not part of the document tree, they do not appear when traversing over the document tree.
NodeFilter.SHOW_ENTITY_REFERENCE This deprecated API should no longer be used, but will probably still work.16Shows EntityReference nodes.
NodeFilter.SHOW_NOTATION This deprecated API should no longer be used, but will probably still work.2048Shows Notation nodes. This is meaningful only when creating a TreeWalker with a Notation node as its root; in this case, it means that the Notation node will appear in the first position of the traversal. Since entities are not part of the document tree, they do not appear when traversing over the document tree.
NodeFilter.SHOW_PROCESSING_INSTRUCTION64Shows ProcessingInstruction nodes.
NodeFilter.SHOW_TEXT4Shows Text nodes.
filter Optional
A NodeFilter, that is an object with a method acceptNode, which is called by the TreeWalker to determine whether or not to accept a node that has passed the whatToShow check.
entityReferenceExpansion Optional This is an obsolete API and is no longer guaranteed to work.
A Boolean flag indicating if when discarding an EntityReference its whole sub-tree must be discarded at the same time.

Return value

A new TreeWalker object.

Example

The following example goes through all nodes in the body, reduces the set of nodes to elements, passes through as acceptable each node (it could reduce the set in the acceptNode() method instead), and then makes use of tree walker iterator that is created to advance through the nodes (now all elements) and push them into an array.

var treeWalker = document.createTreeWalker(
  document.body,
  NodeFilter.SHOW_ELEMENT,
  { acceptNode: function(node) { return NodeFilter.FILTER_ACCEPT; } },
  false
);

var nodeList = [];
var currentNode = treeWalker.currentNode;

while(currentNode) {
  nodeList.push(currentNode);
  currentNode = treeWalker.nextNode();
}

Specifications

SpecificationStatusComment
DOM
The definition of 'Document.createTreeWalker' in that specification.
Living StandardRemoved the expandEntityReferences parameter. Made the whatToShow and filter parameters optionals.
Document Object Model (DOM) Level 2 Traversal and Range Specification
The definition of 'Document.createTreeWalker' in that specification.
ObsoleteInitial definition

Browser compatibility

BCD tables only load in the browser

See also

  • The interface of the object it creates: TreeWalker.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

词条统计

浏览:31 次

字数:14764

最后编辑:8年前

编辑次数:0 次

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文