-
Giờ đây các bạn đã có rất nhiều công cụ tìm kiếm phần tử trong hộp dụng cụ của mình.
-
Và những công cụ đó phần lớn tgian đều rất hiệu quả.
-
Nhưng vẫn còn một công cụ nữa quyền lực nhất trong số đó:
-
khả năng tìm phần tử dựa trên bất kỳ bộ chọn nào của CSS.
-
Các bạn có nhớ bộ chọn CSS không?
-
Những bộ chọn cơ bản sẽ tìm tên tag,
-
hoặc ID
-
hoặc class.
-
Nhưng có nhiều bộ chọn cao cấp hơn thế:
-
bộ chọn hậu duệ, bộ chọn thuộc tính, bộ chọn kết hợp class và phần tử--
-
đây sẽ là lúc thích hợp để ta ôn tập lại bộ chọn CSS
-
nếu các bạn có lỡ quên sạch.
-
Ví dụ, nếu tôi chỉ muốn thiết kế riêng những phần tử
-
với tên class “animal” trong một đoạn văn thì sao?
-
Ta sẽ gắn một tag `` để thực hiện.
-
Như vậy trước hết tôi sẽ nhập `p`,
-
sau đó dấu cách, thể hiện rằng tôi đang xem xét bên trong các ``,
-
rồi .animal để biểu thị tôi đang tìm mọi phần tử
-
có tên class “animal”.
-
Và tôi sẽ tô màu đỏ.
-
Đẹp rồi.
-
Bây giờ, tôi có thể sử dụng cùng bộ chọn CSS để tìm những phần tử đó trong Javascript,
-
với thủ tục `document.querySelectorAll()`.
-
Tôi sẽ thay đổi dòng này.
-
Và tôi cần phải đưa vào bộ chọn CSS dưới dạng đối số,
-
một chuỗi trong dấu ngoặc kép.
-
Đó, đoạn văn lại nói về mèo rồi.
-
Các bạn có thể đưa vào hàm đó bất kỳ bộ chọn CSS hợp lệ nào,
-
và nó sẽ trả về một tâp hợp phần tử
-
để sau đó ta có thể tạo vòng lặp.
-
Các bạn còn nhớ lần trước ta nói rằng
-
`getElementsByTagName()` trả về tập hợp HTML
-
trông rất giống một mảng không?
-
Thủ tục này sẽ trả về một `NodeList`, trông cũng rất giống một mảng,
-
trong đó ta có thể sử dụng dấu ngoặc, ta có thể kiểm tra độ dài, đại loại thế.
-
Và các bạn sẽ không thấy bất kỳ sự khác biệt nào giữa
-
NodeList và HTMLCollection khi sử dụng những thủ tục này đâu.
-
Nhưng các bạn cứ thoải mái tham khảo nếu muốn tìm hiểu về chúng.
-
OK, bây giờ, ta còn một thủ tục nữa cũng tham khảo bộ chọn CSS,
-
và chỉ trả về một phần tử, nếu ta biết bộ chọn CSS
-
chỉ chọn một thứ.
-
Trên thực tế, nó không hữu ích đến thế đâu,
-
vì thông thường trong trường hợp đó ta sẽ có một ID khả dụng.
-
Nhưng tôi vẫn sẽ giới thiệu cho các bạn, để phòng xa thôi.
-
Như vậy ở đây, thay vì `getElementById`, ta có thể nhập:
-
`document.querySelector("`
-
Sau đó, với query thực, để biến nó thành một ID, ta chỉ cần thêm dấu #.
-
Ta-da.
-
Như các bạn thấy, nó rất giống với `querySelectorAll()`,
-
trừ việc ta chỉ chọn một, nên nó chỉ là `querySelector()`,
-
và ta chỉ cần đưa vào bộ chọn CSS bất kỳ để thu về một phần tử.
-
Vậy khi nào ta nên sử dụng những công cụ này?
-
Những công cụ đầu tiên mà tôi đã chỉ cho các bạn thường có hiệu quả cao hơn.
-
Vì vậy tôi gợi ý nên sử dụng chúng bất cứ khi nào có thể.
-
Nhưng trong trường hợp phải sử dụng một bộ chọn CSS phức tạp,
-
và không thể sử dụng những công cụ trên, thì `querySelectorAll()` sẽ là cứu tinh đấy.
-
Hãy thử áp dụng trong thử thách tiếp theo nhé,
-
và chuẩn bị tinh thần để tiếp thu thêm nhiều phương pháp nữa giúp ta xử lý trang web này.