NodeIterator

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

NodeIterator 介面表示一個用於按照文件順序遍歷 DOM 子樹節點的迭代器。

可以使用 Document.createNodeIterator() 方法建立 NodeIterator,如下所示:

js
const nodeIterator = document.createNodeIterator(root, whatToShow, filter);

例項屬性

此介面不繼承任何屬性。

NodeIterator.root 只讀

返回一個 Node,表示建立 NodeIterator 時指定的根節點。

NodeIterator.whatToShow 只讀

返回一個 unsigned long 位掩碼,描述要匹配的 Node 型別。不匹配的節點將被跳過,但相關的子節點可能包含在內。

可能的位掩碼值是 NodeFilter 介面中的常量:

常量 數值 描述
NodeFilter.SHOW_ALL 4294967295(即 unsigned long 的最大值) 顯示所有節點。
NodeFilter.SHOW_ATTRIBUTE 已棄用 2 顯示屬性 Attr 節點。這僅在以 Attr 節點作為根節點建立 NodeIterator 時才有意義;在這種情況下,它表示屬性節點將出現在迭代或遍歷的第一個位置。由於屬性永遠不是其他節點的子節點,因此在遍歷文件樹時它們不會出現。
NodeFilter.SHOW_CDATA_SECTION 已棄用 8 顯示 CDATASection 節點。
NodeFilter.SHOW_COMMENT 128 顯示 Comment 節點。
NodeFilter.SHOW_DOCUMENT 256 顯示 Document 節點。
NodeFilter.SHOW_DOCUMENT_FRAGMENT 1024 顯示 DocumentFragment 節點。
NodeFilter.SHOW_DOCUMENT_TYPE 512 顯示 DocumentType 節點。
NodeFilter.SHOW_ELEMENT 1 顯示 Element 節點。
NodeFilter.SHOW_ENTITY 已棄用 32 遺留,不再使用。
NodeFilter.SHOW_ENTITY_REFERENCE 已棄用 16 遺留,不再使用。
NodeFilter.SHOW_NOTATION 已棄用 2048 遺留,不再使用。
NodeFilter.SHOW_PROCESSING_INSTRUCTION 64 顯示 ProcessingInstruction 節點。
NodeFilter.SHOW_TEXT 4 顯示 Text 節點。
NodeIterator.filter 只讀

返回用於選擇相關節點的 NodeFilter

NodeIterator.referenceNode 只讀

返回迭代器所錨定的 Node

NodeIterator.pointerBeforeReferenceNode 只讀

返回一個布林值,指示 NodeIterator 是否錨定在 NodeIterator.referenceNode *之前*。如果為 false,則表示迭代器錨定在引用節點*之後*。

例項方法

此介面不繼承任何方法。

NodeIterator.detach() 已棄用

這是一個遺留方法,不再有任何作用。以前它用於標記一個 NodeIterator 已被釋放,以便可以被垃圾回收。

NodeIterator.previousNode()

返回文件中的上一個 Node,如果沒有則返回 null

NodeIterator.nextNode()

返回文件中的下一個 Node,如果沒有則返回 null

規範

規範
DOM
# interface-nodeiterator

瀏覽器相容性

另見