JavaScript đặt tên lớp
Thuộc tính lớp HTML được sử dụng để đánh dấu các phần tử riêng lẻ bằng một lớp, phân biệt nó với các phần tử khác trong tài liệuĐiều này cho phép các nhà phát triển web mặt trước dễ dàng áp dụng các kiểu CSS cho một phần tử hoặc để dễ dàng xác định và truy xuất một phần tử từ DOM. Một phần tử HTML có thể có nhiều lớp. Tương tự, nhiều phần tử HTML có thể chia sẻ cùng một lớp – không có hạn chế dựa trên loại phần tử và các lớp không cần phải là duy nhất Show Có hai cách đơn giản để đặt lớp của phần tử
Chúng tôi thường khuyến nghị cách tiếp cận thứ hai, sử dụng thuộc tính classList, vì mã kết quả thường dễ đọc hơn, chính xác hơn và nhiều chức năng hơn so với khi sửa đổi trực tiếp thuộc tính className Thuộc tính tên lớpBạn có thể truy cập className của một phần tử bằng cách gọi nó trực tiếp trên phần tử được trả về bởi một querySelector đã cho. Lấy ví dụ mã HTML mẫu sau HTML Make me classy Mã này tạo ra một phần tử, nhưng không bao gồm lớp. Bây giờ, hãy xem một số mã JavaScript mẫu cố gắng thao tác phần tử nàyJavaScript console.log(document.querySelector('h1').className); // The expected output is an empty string document.querySelector('h1').className = 'classy'; console.log(document.querySelector('h1').className); //Expected output: classy Trong đoạn mã trên, bản in đầu tiên tới bàn điều khiển trả về một chuỗi trống vì Dòng mã thứ hai (dòng 4) kéo theo dòng đầu tiên phần tử được tìm thấy bằng cách sử dụng tài liệu. phương thức querySelector(). Trước khi thuộc tính className lấy tên lớp cho phần tử, chúng ta có thể sử dụng lại nó ở đây để gán một lớp cho phần tử. Áp dụng toán tử gán biến thuộc tính className từ getter thành setter. Ví dụ trên gán lớp “classy” cho phần tử thu được từ tài liệuBây giờ chúng ta đã đặt giá trị lớp của phần tử, câu lệnh in thứ hai sẽ lấy giá trị của lớp và in nó ra bàn điều khiển. Đầu ra của bản in này sẽ là “classy” – loại mà chúng tôi đã chỉ định ở dòng thứ năm của tập lệnhGhi chú. Thuộc tính className có tính hủy diệt – nếu trước đây phần tử có một lớp thì bây giờ nó đã biến mất. Thông tin lớp trước đó đã được thay thế bằng giá trị “classy” mới và đây sẽ là lớp duy nhất trên phần tử cú pháp
Thuộc tính classListThuộc tính classList mặc định là chỉ đọc, nhưng nó đi kèm với các phương thức và thuộc tính hỗ trợ có thể được sử dụng để thao tác danh sách các lớp được gán cho một phần tử HTML. Lấy tài liệu mẫu sau đây bên dưới HTML I am super classy! Điều này tạo ra một JavaScript console.log(document.querySelector('h1').classList.length); // Expected output: 4 console.log(document.querySelector('h1').classList.value); // Expected output: multi-class header first title Gọi thuộc tính độ dài của classList cho phần tử trả về số lớp mà phần tử có Gọi thuộc tính giá trị của classList cho phần tử trả về danh sách tên dưới dạng chuỗi phương pháp danh sách lớpMặc dù chức năng chỉ đọc rất hữu ích nhưng nó vẫn chưa mang lại cho chúng ta tính linh hoạt của thuộc tính className. Để làm việc với classList chúng ta cần sử dụng các phương thức hỗ trợ trên đối tượng classList Chúng tôi sẽ xem xét từng chức năng bằng cách sử dụng phần tử mẫu từ ví dụ trước. Phần tử này có bốn lớp trong danh sách lớp của nó – “multi-class”, “header”, “first” và “title”. Các phương thức bên dưới thao tác với danh sách lớp nàythêm vào()Phương thức add() thêm một lớp khác vào danh sách JavaScript document.querySelector('h1').classList.add('bulky'); console.log(document.querySelector('h1').classList.value); // Expected output: multi-class header first title bulky Trong đoạn mã trên, chúng tôi đã thêm lớp “bulky” vào danh sách. Thao tác này sẽ thêm tên lớp mà chúng tôi đã cung cấp vào cuối định nghĩa lớp, dẫn đến việc thêm tên lớp “bulky” vào đầu ra được in di dời()Hàm remove() xóa một lớp khỏi danh sách lớp JavaScript document.querySelector('h1').classList.remove('bulky') console.log(document.querySelector('h1').classList.value); // Expected output: multi-class header first title Trong ví dụ này, "bulky" đã bị xóa khỏi danh sách lớp của phần tử, để lại nó với bốn lớp ban đầu của chúng tôi Ghi chú. Bạn có thể thêm hoặc xóa nhiều lớp cùng một lúc – chỉ cần chuyển chúng vào dưới dạng một chuỗi được phân cách bằng dấu phẩy (i. e. “extra,bulky,classes” – điều này thêm hoặc xóa ba lớp khỏi danh sách lớp) chuyển đổi ()Phương thức toggle() chuyển đổi một lớp nhất định trên một đối tượng. Điều này có nghĩa là lớp được yêu cầu sẽ được thêm nếu thiếu hoặc bị xóa nếu có JavaScript document.querySelector('h1').classList.toggle('toggles'); console.log(document.querySelector('h1').classList.value); // Expected output: multi-class header first title toggle document.querySelector('h1').classList.toggle('toggles') console.log(document.querySelector('h1').classList.value); // Expected output: multi-class header first title Đoạn mã này thêm, sau đó loại bỏ lớp “toggles” bằng cách sử dụng phương thức toggle(). Bàn điều khiển đầu tiên. log() sẽ bao gồm “toggles” trong danh sách lớp, trong khi bảng điều khiển thứ hai. log() sẽ không thay thế()Phương thức replace() thay thế một tên lớp bằng một tên khác. Phải mất hai tham số - tên lớp để thay thế và giá trị mới để thay thế nó bằng |