DOM 樹上的選擇與遍歷

選擇器 API 提供了方法,可以根據一組 選擇器 快速輕鬆地從 DOM 中檢索 Element 節點。這比過去的技術要快得多,例如,過去需要使用 JavaScript 程式碼中的迴圈來查詢您需要找到的特定項。

NodeSelector 介面

此規範向實現 DocumentDocumentFragmentElement 介面的任何物件添加了兩個新方法

querySelector()

返回節點子樹中第一個匹配的 Element 節點。如果沒有找到匹配的節點,則返回 null

querySelectorAll()

返回一個包含節點子樹中所有匹配的 Element 節點的 NodeList,如果沒有找到匹配項,則返回一個空的 NodeList

注意: querySelectorAll() 返回的 NodeList 不是即時的,這意味著 DOM 的更改不會反映在該集合中。這與其他返回即時節點列表的 DOM 查詢方法不同。

您可以透過閱讀 Element.querySelector()Element.querySelectorAll() 方法的文件來查詢示例和詳細資訊。

選擇器

選擇器方法接受 選擇器 來確定應返回哪個或哪些元素。這包括 選擇器列表,因此您可以在單個查詢中組合多個選擇器。

為了保護使用者隱私,某些 偽類 不受支援或行為不同。例如,:visited 將不返回任何匹配項,而 :link 被視為 :any-link

只能選擇元素,因此 偽類 不受支援。

示例

要選擇文件中所有包含 warningnote 類的段落 (p) 元素,您可以執行以下操作

js
const special = document.querySelectorAll("p.warning, p.note");

您也可以按 ID 查詢。例如

js
const el = document.querySelector("#main, #basic, #exclamation");

執行上述程式碼後,el 包含文件中 ID 為 mainbasicexclamation 的第一個元素。

另見