aboutsummaryrefslogtreecommitdiff
path: root/files/zh-cn/web/api/document/createnodeiterator
diff options
context:
space:
mode:
authorPeter Bengtsson <mail@peterbe.com>2020-12-08 14:40:17 -0500
committerPeter Bengtsson <mail@peterbe.com>2020-12-08 14:40:17 -0500
commit33058f2b292b3a581333bdfb21b8f671898c5060 (patch)
tree51c3e392513ec574331b2d3f85c394445ea803c6 /files/zh-cn/web/api/document/createnodeiterator
parent8b66d724f7caf0157093fb09cfec8fbd0c6ad50a (diff)
downloadtranslated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.gz
translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.bz2
translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.zip
initial commit
Diffstat (limited to 'files/zh-cn/web/api/document/createnodeiterator')
-rw-r--r--files/zh-cn/web/api/document/createnodeiterator/index.html145
1 files changed, 145 insertions, 0 deletions
diff --git a/files/zh-cn/web/api/document/createnodeiterator/index.html b/files/zh-cn/web/api/document/createnodeiterator/index.html
new file mode 100644
index 0000000000..1e1b653d7a
--- /dev/null
+++ b/files/zh-cn/web/api/document/createnodeiterator/index.html
@@ -0,0 +1,145 @@
+---
+title: Document.createNodeIterator()
+slug: Web/API/Document/createNodeIterator
+tags:
+ - API
+ - DOM
+ - Gecko
+translation_of: Web/API/Document/createNodeIterator
+---
+<p>{{APIRef("DOM")}}</p>
+
+<p>返回一个新的 <a class="internal" href="/en/DOM/NodeIterator" title="En/DOM/NodeIterator"><code>NodeIterator</code></a> 对象。</p>
+
+<h2 id="Syntax" name="Syntax">语法</h2>
+
+<pre>const nodeIterator = document.createNodeIterator(<var>root</var>[, <var>whatToShow</var>[, <var>filter</var>]]);</pre>
+
+<h3 id="参数">参数</h3>
+
+<dl>
+ <dt><code>root</code></dt>
+ <dd> {{ domxref("NodeIterator") }}遍历起始处的根节点。</dd>
+ <dt><code>whatToShow</code> {{ optional_inline() }}</dt>
+ <dd>是一个可选的无符号长整型(<code>unsigned long</code>), 是由节点过滤器(<code><a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/traversal.html#Traversal-NodeFilter" title="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/traversal.html#Traversal-NodeFilter">NodeFilter</a></code>)中的常量属性定义的位掩码。这是筛选特定类型节点的便捷方式。其默认值是 <code>0xFFFFFFFF</code> ,代表 <code>SHOW_ALL</code> 常量。
+ <table class="standard-table">
+ <tbody>
+ <tr>
+ <td class="header">常量</td>
+ <td class="header">数字值</td>
+ <td class="header">描述</td>
+ </tr>
+ <tr>
+ <td><code>NodeFilter.SHOW_ALL</code></td>
+ <td><code>-1</code> (即<code>unsigned long</code> 的最大值)</td>
+ <td>显示所有节点。</td>
+ </tr>
+ <tr>
+ <td><code>NodeFilter.SHOW_ATTRIBUTE</code> {{deprecated_inline}}</td>
+ <td><code>2</code></td>
+ <td>显示 {{ domxref("Attr") }} 特性节点。这仅在创建以{{ domxref("Attr") }} 特性节点为根节点的{{ domxref("TreeWalker") }}时有意义;在这种情况下,这意味着该特性节点会出现在迭代或遍历的第一位。因为特性节点不会是其他节点的子代,遍历文档树时,特性节点不会出现。</td>
+ </tr>
+ <tr>
+ <td><code>NodeFilter.SHOW_CDATA_SECTION</code> {{deprecated_inline}}</td>
+ <td><code>8</code></td>
+ <td>显示 {{ domxref("CDATASection") }} 节点。</td>
+ </tr>
+ <tr>
+ <td><code>NodeFilter.SHOW_COMMENT</code></td>
+ <td><code>128</code></td>
+ <td>显示 {{ domxref("Comment") }} 节点。</td>
+ </tr>
+ <tr>
+ <td><code>NodeFilter.SHOW_DOCUMENT</code></td>
+ <td><code>256</code></td>
+ <td>显示 {{ domxref("Document") }} 节点。</td>
+ </tr>
+ <tr>
+ <td><code>NodeFilter.SHOW_DOCUMENT_FRAGMENT</code></td>
+ <td><code>1024</code></td>
+ <td>显示 {{ domxref("DocumentFragment") }} 节点。</td>
+ </tr>
+ <tr>
+ <td><code>NodeFilter.SHOW_DOCUMENT_TYPE</code></td>
+ <td><code>512</code></td>
+ <td>显示 {{ domxref("DocumentType") }} 节点。</td>
+ </tr>
+ <tr>
+ <td><code>NodeFilter.SHOW_ELEMENT</code></td>
+ <td><code>1</code></td>
+ <td>显示 {{ domxref("Element") }} 节点。</td>
+ </tr>
+ <tr>
+ <td><code>NodeFilter.SHOW_ENTITY</code> {{deprecated_inline}}</td>
+ <td><code>32</code></td>
+ <td>显示 {{ domxref("Entity") }} 节点。 这仅在创建以{{ domxref("Entity") }}实体节点为根节点的{{ domxref("TreeWalker") }}时有意义;在这种情况下,这意味着该实体节点会出现在迭代或遍历的第一位。因为实体节点不会是其他节点的子代,遍历文档树时,实体节点不会出现。</td>
+ </tr>
+ <tr>
+ <td><code>NodeFilter.SHOW_ENTITY_REFERENCE</code> {{deprecated_inline}}</td>
+ <td><code>16</code></td>
+ <td>显示 {{ domxref("EntityReference") }} 节点。</td>
+ </tr>
+ <tr>
+ <td><code>NodeFilter.SHOW_NOTATION</code> {{deprecated_inline}}</td>
+ <td><code>2048</code></td>
+ <td>显示 {{ domxref("Entity") }} 节点。 这仅在创建以{{ domxref("Notation") }}符号节点为根节点的{{ domxref("TreeWalker") }}时有意义;在这种情况下,这意味着该符号节点会出现在迭代或遍历的第一位。因为符号节点不会是其他节点的子代,遍历文档树时,符号节点不会出现。</td>
+ </tr>
+ <tr>
+ <td><code>NodeFilter.SHOW_PROCESSING_INSTRUCTION</code></td>
+ <td><code>64</code></td>
+ <td>显示 {{ domxref("ProcessingInstruction") }} 节点。</td>
+ </tr>
+ <tr>
+ <td><code>NodeFilter.SHOW_TEXT</code></td>
+ <td><code>4</code></td>
+ <td>显示 {{ domxref("Text") }} 节点。</td>
+ </tr>
+ </tbody>
+ </table>
+ </dd>
+ <dt><code>filter</code> {{ optional_inline() }}</dt>
+ <dd>是实现 {{ domxref("NodeFilter") }} 接口的对象; 其 <code>acceptNode()</code> 方法会对从根节点开始到子树中的每个节点都调用一次,哪些节点需要进入迭代节点列表等待调用则取决于whatToShow参数(也可以使用一个简单的回调函数代替<code>acceptNode()</code>)。该方法需要返回下列常量之一: <code>NodeFilter.FILTER_ACCEPT</code> ,<code>NodeFilter.FILTER_REJECT</code> 或 <code>NodeFilter.FILTER_SKIP</code>(见<a href="https://developer.mozilla.org/zh-CN/docs/Web/API/NodeFilter">NodeFilter</a>),参见{{ anch("示例") }}。</dd>
+</dl>
+
+<div class="note"><strong>注意: </strong>在Gecko12.0{{ geckoRelease("12.0") }}以前,这个方法接收第四个可选的参数(<code>entityReferenceExpansion</code>),这不是DOM4 规范中的一部分,因此被移除了。这个参数表示实体引用节点的子代对于迭代器是否可见。因为浏览器不会创建这样的节点,这个参数没有任何作用。</div>
+
+<h2 id="Example" name="Example">示例</h2>
+
+<pre>const nodeIterator = document.createNodeIterator(
+    document.body,
+    NodeFilter.SHOW_ELEMENT,
+    {
+  acceptNode(node) {
+ return node.nodeName.toLowerCase() === 'p' ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT;
+ }
+ }
+);
+const pars = [];
+let currentNode;
+
+while (currentNode = nodeIterator.nextNode()) {
+  pars.push(currentNode);
+}
+</pre>
+
+<h2 id="Specification" name="Specification">规范</h2>
+
+<table>
+ <thead>
+ <tr>
+ <th scope="col">规范</th>
+ <th scope="col">状态</th>
+ <th scope="col">注释</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>{{SpecName('DOM WHATWG', '#dom-document-createnodeiterator', 'document.createNodeIterator')}}</td>
+ <td>{{Spec2('DOM WHATWG')}}</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="浏览器兼容性">浏览器兼容性</h2>
+
+<p>{{Compat("api.Document.createNodeIterator")}}</p>