DOMTokenList: phương thức toggle()

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.

Phương thức toggle() của giao diện DOMTokenList xóa một token hiện có khỏi danh sách và trả về false. Nếu token không tồn tại, nó sẽ được thêm vào và hàm trả về true.

Cú pháp

js
toggle(token)
toggle(token, force)

Tham số

token

Một chuỗi biểu thị token mà bạn muốn chuyển trạng thái.

force Optional

Nếu được bao gồm, sẽ biến thao tác toggle thành thao tác một chiều. Nếu đặt là false, thì token sẽ chỉ bị xóa, nhưng không được thêm. Nếu đặt là true, thì token sẽ chỉ được thêm, nhưng không bị xóa.

Giá trị trả về

Một giá trị boolean, true hoặc false, cho biết token có nằm trong danh sách sau khi gọi hay không.

Ví dụ

Chuyển trạng thái một lớp khi nhấp

Trong ví dụ sau, chúng ta lấy danh sách các lớp được đặt trên một phần tử <span> dưới dạng DOMTokenList bằng Element.classList. Sau đó chúng ta thay thế một token trong danh sách, rồi ghi danh sách vào Node.textContent của thẻ <span>.

Trước hết là HTML:

html
<span class="a b">classList is 'a b'</span>

Bây giờ là JavaScript:

js
const span = document.querySelector("span");
const classes = span.classList;

span.addEventListener("click", () => {
  const result = classes.toggle("c");
  span.textContent = `'c' ${
    result ? "added" : "removed"
  }; classList is now "${classes}".`;
});

Kết quả sẽ như sau và sẽ thay đổi mỗi khi bạn nhấp vào văn bản:

Thiết lập tham số force

Tham số thứ hai có thể được dùng để xác định lớp có được bao gồm hay không. Ví dụ này sẽ chỉ bao gồm lớp 'c' nếu cửa sổ trình duyệt rộng hơn 1000 pixel:

js
span.classList.toggle("c", window.innerWidth > 1000);

Thông số kỹ thuật

Specification
DOM
# ref-for-dom-domtokenlist-toggle①

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