探索

メソッド previousNode, nextNode (DOM)

[4] NodeIteratorメソッドである previousNode, nextNode は、それぞれ前または後に探索を行います。

仕様書

NodeIterator における探索

[5] previousNode は前方向、 nextNode は後方向に探索を行い、その結果を返さなければなりません >>3。 両メソッドは、 Node? です >>3

[6] 探索 (traversal) は、 イテレーターコレクションにおいて現在の参照節点の前または後において、 濾過 (whatToShow濾過器を適用) した結果 FILTER_ACCEPT が得られる直近の節点を返します。そのような節点がなければ、 null を返します。 >>3

[8] 濾過器例外を投げた場合には、それが伝播して previousNodenextNode例外を投げます。

[7] 節点を返す場合には、その節点が新たな参照節点として設定され、 nextNode ならpreviousNode ならpointerBeforeReferenceNode に設定されます。 null を返す場合や例外が投げられた場合には、いずれも変更されません。 >>3

歴史

[1] DOM水準2の仕様書からは TreeWalkerpreviousNode が例えば currentNoderoot なら null になるのか不明瞭です (おそらくそうなのでしょうが)。

[2] DOM水準2の仕様書からは TreeWalkernextNode がみつからないなら null になるのか不明瞭です (おそらくそうなのでしょうが)。

[9] Fix TreeWalker's nextNode() (annevk著, ) <https://github.com/whatwg/dom/commit/826d66b551935a7b2af09a4afc2b839500bb6c0e>

[10] 28107 – TreeWalker nextNode never ascends the tree () <https://www.w3.org/Bugs/Public/show_bug.cgi?id=28107>

[11] Fix TreeWalker's nextNode() by annevk · Pull Request #612 · whatwg/dom () <https://github.com/whatwg/dom/pull/612>