TreeWalker

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Đối tượng TreeWalker đại diện cho các nút của một cây con tài liệu và vị trí hiện tại bên trong chúng.

Bạn có thể tạo một TreeWalker bằng phương thức Document.createTreeWalker().

Thuộc tính thể hiện

Giao diện này không kế thừa thuộc tính nào.

TreeWalker.root Read only

Trả về Node gốc như đã chỉ định khi TreeWalker được tạo.

TreeWalker.whatToShow Read only

Trả về một unsigned long là bitmask được tạo từ các hằng số mô tả những kiểu Node cần hiển thị. Các nút không khớp sẽ bị bỏ qua, nhưng nút con của chúng vẫn có thể được bao gồm nếu phù hợp.

TreeWalker.filter Read only

Trả về NodeFilter được liên kết với TreeWalker này và được dùng để chọn các nút phù hợp.

TreeWalker.currentNode

NodeTreeWalker hiện đang trỏ tới.

Phương thức thể hiện

Giao diện này không kế thừa phương thức nào.

Note: Trong ngữ cảnh của TreeWalker, một nút được xem là có thể thấy nếu nó tồn tại trong chế độ xem logic được xác định bởi các đối số whatToShowfilter. Việc nút có hiển thị trên màn hình hay không là không liên quan.

TreeWalker.parentNode()

Di chuyển Node hiện tại đến nút cha tổ tiên có thể thấy đầu tiên theo thứ tự tài liệu, và trả về nút đó. Đồng thời nút hiện tại cũng được cập nhật sang nút này. Nếu không có nút như vậy, hoặc nếu nó nằm trước nút gốc được xác định khi tạo đối tượng, phương thức trả về null và nút hiện tại không thay đổi.

TreeWalker.firstChild()

Di chuyển Node hiện tại đến nút con có thể thấy đầu tiên của nút hiện tại, và trả về nút con tìm được. Đồng thời nút hiện tại cũng được cập nhật sang nút này. Nếu không có nút con như vậy, phương thức trả về null và nút hiện tại không thay đổi. Lưu ý rằng nút do firstChild() trả về phụ thuộc vào giá trị whatToShow được đặt khi khởi tạo đối tượng TreeWalker. Giả sử cây HTML sau và bạn đặt whatToShow thành NodeFilter.SHOW_ALL, thì lời gọi firstChild() sẽ trả về một nút Text chứ không phải đối tượng HTMLDivElement.

html
<!doctype html>
<html lang="vi">
  <head>
    <title>Demo</title>
  </head>
  <body>
    <div id="container"></div>
  </body>
</html>
js
let walker = document.createTreeWalker(document.body, NodeFilter.SHOW_ALL);
let node = walker.firstChild(); // nodeName: "#text"

Nhưng nếu chúng ta làm như sau:

js
let walker = document.createTreeWalker(
  document.body,
  NodeFilter.SHOW_ELEMENT,
);
let node = walker.firstChild(); // nodeName: "DIV"

Điều tương tự cũng áp dụng cho nextSibling(), previousSibling(), firstChild()lastChild()

TreeWalker.lastChild()

Di chuyển Node hiện tại đến nút con có thể thấy cuối cùng của nút hiện tại, và trả về nút con tìm được. Đồng thời nút hiện tại cũng được cập nhật sang nút này. Nếu không có nút con như vậy, phương thức trả về null và nút hiện tại không thay đổi.

TreeWalker.previousSibling()

Di chuyển Node hiện tại đến nút anh em trước đó của nó, nếu có, và trả về nút anh em tìm được. Nếu không có nút như vậy, trả về null và nút hiện tại không thay đổi.

TreeWalker.nextSibling()

Di chuyển Node hiện tại đến nút anh em tiếp theo của nó, nếu có, và trả về nút anh em tìm được. Nếu không có nút như vậy, phương thức trả về null và nút hiện tại không thay đổi.

TreeWalker.previousNode()

Di chuyển Node hiện tại đến nút có thể thấy trước đó theo thứ tự tài liệu, và trả về nút tìm được. Đồng thời nút hiện tại cũng được cập nhật sang nút này. Nếu không có nút như vậy, hoặc nếu nó nằm trước nút gốc được xác định khi tạo đối tượng, phương thức trả về null và nút hiện tại không thay đổi.

TreeWalker.nextNode()

Di chuyển Node hiện tại đến nút có thể thấy tiếp theo theo thứ tự tài liệu, và trả về nút tìm được. Đồng thời nút hiện tại cũng được cập nhật sang nút này. Nếu không có nút như vậy, phương thức trả về null và nút hiện tại không thay đổi.

Thông số kỹ thuật

Specification
DOM
# interface-treewalker

Tương thích trình duyệt

Xem thêm