aboutsummaryrefslogtreecommitdiff
path: root/files/ja/web/api/document/createnodeiterator/index.html
blob: 839e0f52af6fcd287e1762dcfb003fb8603ffb5e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
---
title: Document.createNodeIterator()
slug: Web/API/Document/createNodeIterator
tags:
  - API
  - DOM
  - Gecko
  - MakeBrowserAgnostic
  - Method
  - メソッド
translation_of: Web/API/Document/createNodeIterator
---
<div>{{APIRef("DOM")}}</div>

<p>新しい {{domxref("NodeIterator")}} オブジェクトを返します。</p>

<h2 id="Syntax" name="Syntax">構文</h2>

<pre class="syntaxbox">const nodeIterator = document.createNodeIterator(<var>root</var>[, <var>whatToShow</var>[, <var>filter</var>]]);
</pre>

<h3 id="Values" name="Values"></h3>

<dl>
 <dt><code><var>root</var></code></dt>
 <dd>{{ domxref("NodeIterator") }} の探索の開始地点になるルートノードです。</dd>
 <dt><code><var>whatToShow</var></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">
  <thead>
   <tr>
    <th class="header" scope="col">定数</th>
    <th class="header" scope="col">数値</th>
    <th class="header" scope="col">説明</th>
   </tr>
  </thead>
  <tbody>
   <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>
     <p>属性 {{ domxref("Attr") }} ノードを表します。</p>

     <p>これは、 {{ domxref("Attr") }} ノードをルートとして {{ domxref("NodeIterator") }} を作成した場合にのみ意味を持ちます。この場合、その属性ノードが反復や探索の最初の位置に現れることを意味します。属性は他のノードの子ではないので、文書ツリーを探索しても現れません。</p>
    </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("NodeIterator") }} を作成した場合にのみ意味を持ちます。この場合、 {{ domxref("Entity") }} ノードが探索の最初の位置に現れることを意味します。エンティティは文書ツリーの一部ではないので、文書ツリーを探索しても表されません。</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("Notation") }} ノードを表示します。これは、 {{ domxref("Notation") }} ノードをルートとして {{ domxref("NodeIterator") }} を作成した場合にのみ意味を持ちます。この場合、 {{ domxref("Notation") }} ノードが探索の最初の位置に現れることを意味します。 Notation は文書ツリーの一部ではないので、文書ツリーを探索しても表されません。</td>
   </tr>
   <tr>
    <td><code>NodeFilter.SHOW_PROCESSING_INSTRUCTION</code></td>
    <td><code>64</code></td>
    <td>Shows {{ domxref("ProcessingInstruction") }} nodes.</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><var>filter</var></code> {{ optional_inline() }}</dt>
 <dd>NodeFilter インターフェースを実装したオブジェクト。その acceptNode() メソッドは、反復可能なノードのリストに含めるかどうかを決定するために、 whatToShow フラグによって含まれていると受け入れられたルートを基準としたサブツリーの各ノードに対して呼び出されます (代わりに単純なコールバック関数を使用することもできます)。このメソッドは <code>NodeFilter.FILTER_ACCEPT</code>, <code>NodeFilter.FILTER_REJECT</code>, or <code>NodeFilter.FILTER_SKIP</code> のいずれかを返します。{{ anch("Example", "例") }}を参照してください。</dd>
</dl>

<div class="note"><strong>メモ:</strong> Gecko 12.0 (Firefox 12.0 / Thunderbird 12.0 / SeaMonkey 2.9) より前の版では、このメソッドは DOM4 仕様の一部ではないオプションの 4 番目の引数 (entityReferenceExpansion) を受け入れていました。この引数は、エンティティ参照ノードの子がイテレーターから見えるかどうかを示していました。このようなノードはブラウザーでは作成されないので、この引数は何の効果もありませんでした。</div>

<h2 id="Example" name="Example"></h2>

<pre class="brush: js">const nodeIterator = document.createNodeIterator(
    document.body,
    NodeFilter.SHOW_ELEMENT,
    function(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 class="standard-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>
   <td></td>
  </tr>
 </tbody>
</table>

<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2>

<p>{{Compat("api.Document.createNodeIterator")}}</p>