Return to Video

Finding elements by CSS selector (Video Version)

  • 0:02 - 0:06
    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.
  • 0:06 - 0:09
    Và những công cụ đó phần lớn tgian đều rất hiệu quả.
  • 0:09 - 0:12
    Nhưng vẫn còn một công cụ nữa quyền lực nhất trong số đó:
  • 0:12 - 0:18
    khả năng tìm phần tử dựa trên bất kỳ bộ chọn nào của CSS.
  • 0:18 - 0:20
    Các bạn có nhớ bộ chọn CSS không?
  • 0:20 - 0:25
    Những bộ chọn cơ bản sẽ tìm tên tag,
  • 0:25 - 0:26
    hoặc ID
  • 0:26 - 0:28
    hoặc class.
  • 0:28 - 0:30
    Nhưng có nhiều bộ chọn cao cấp hơn thế:
  • 0:30 - 0:35
    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ử--
  • 0:35 - 0:39
    đây sẽ là lúc thích hợp để ta ôn tập lại bộ chọn CSS
  • 0:39 - 0:41
    nếu các bạn có lỡ quên sạch.
  • 0:41 - 0:46
    Ví dụ, nếu tôi chỉ muốn thiết kế riêng những phần tử
  • 0:46 - 0:51
    với tên class “animal” trong một đoạn văn thì sao?
  • 0:51 - 0:55
    Ta sẽ gắn một tag `` để thực hiện.
  • 0:55 - 0:57
    Như vậy trước hết tôi sẽ nhập `p`,
  • 0:57 - 1:02
    sau đó dấu cách, thể hiện rằng tôi đang xem xét bên trong các ``,
  • 1:02 - 1:06
    rồi .animal để biểu thị tôi đang tìm mọi phần tử
  • 1:06 - 1:10
    có tên class “animal”.
  • 1:10 - 1:13
    Và tôi sẽ tô màu đỏ.
  • 1:13 - 1:14
    Đẹp rồi.
  • 1:14 - 1:20
    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,
  • 1:20 - 1:25
    với thủ tục `document.querySelectorAll()`.
  • 1:25 - 1:30
    Tôi sẽ thay đổi dòng này.
  • 1:30 - 1:35
    Và tôi cần phải đưa vào bộ chọn CSS dưới dạng đối số,
  • 1:35 - 1:38
    một chuỗi trong dấu ngoặc kép.
  • 1:38 - 1:42
    Đó, đoạn văn lại nói về mèo rồi.
  • 1:42 - 1:46
    Các bạn có thể đưa vào hàm đó bất kỳ bộ chọn CSS hợp lệ nào,
  • 1:46 - 1:48
    và nó sẽ trả về một tâp hợp phần tử
  • 1:48 - 1:51
    để sau đó ta có thể tạo vòng lặp.
  • 1:51 - 1:54
    Các bạn còn nhớ lần trước ta nói rằng
  • 1:54 - 1:58
    `getElementsByTagName()` trả về tập hợp HTML
  • 1:58 - 2:00
    trông rất giống một mảng không?
  • 2:00 - 2:07
    Thủ tục này sẽ trả về một `NodeList`, trông cũng rất giống một mảng,
  • 2:07 - 2:13
    trong đó ta có thể sử dụng dấu ngoặc, ta có thể kiểm tra độ dài, đại loại thế.
  • 2:13 - 2:16
    Và các bạn sẽ không thấy bất kỳ sự khác biệt nào giữa
  • 2:16 - 2:20
    NodeList và HTMLCollection khi sử dụng những thủ tục này đâu.
  • 2:20 - 2:24
    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.
  • 2:24 - 2:29
    OK, bây giờ, ta còn một thủ tục nữa cũng tham khảo bộ chọn CSS,
  • 2:29 - 2:33
    và chỉ trả về một phần tử, nếu ta biết bộ chọn CSS
  • 2:33 - 2:35
    chỉ chọn một thứ.
  • 2:35 - 2:37
    Trên thực tế, nó không hữu ích đến thế đâu,
  • 2:37 - 2:40
    vì thông thường trong trường hợp đó ta sẽ có một ID khả dụng.
  • 2:40 - 2:43
    Nhưng tôi vẫn sẽ giới thiệu cho các bạn, để phòng xa thôi.
  • 2:43 - 2:46
    Như vậy ở đây, thay vì `getElementById`, ta có thể nhập:
  • 2:46 - 2:49
    `document.querySelector("`
  • 2:49 - 2:54
    Sau đó, với query thực, để biến nó thành một ID, ta chỉ cần thêm dấu #.
  • 2:54 - 2:55
    Ta-da.
  • 2:55 - 2:58
    Như các bạn thấy, nó rất giống với `querySelectorAll()`,
  • 2:58 - 3:02
    trừ việc ta chỉ chọn một, nên nó chỉ là `querySelector()`,
  • 3:02 - 3:07
    và ta chỉ cần đưa vào bộ chọn CSS bất kỳ để thu về một phần tử.
  • 3:07 - 3:10
    Vậy khi nào ta nên sử dụng những công cụ này?
  • 3:10 - 3:14
    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.
  • 3:14 - 3:16
    Vì vậy tôi gợi ý nên sử dụng chúng bất cứ khi nào có thể.
  • 3:16 - 3:20
    Nhưng trong trường hợp phải sử dụng một bộ chọn CSS phức tạp,
  • 3:20 - 3:24
    và không thể sử dụng những công cụ trên, thì `querySelectorAll()` sẽ là cứu tinh đấy.
  • 3:24 - 3:26
    Hãy thử áp dụng trong thử thách tiếp theo nhé,
  • 3:26 - 0:00
    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.
Title:
Finding elements by CSS selector (Video Version)
Description:

more » « less
Video Language:
English
Duration:
03:33

Vietnamese subtitles

Incomplete

Revisions