GetElementsByClassName innerHTML không hoạt động

Trong đoạn mã trên var z sẽ lưu trữ tất cả các phần tử có tên lớp là “demo”. và z[0] sẽ trỏ đến phần tử đầu tiên mà trong trường hợp của chúng ta là phần tử duy nhất

. Also make sure all your JS statement ends with a semicolon( ; ) (the statement

Element
6 was missing one).
và để kiểm tra lỗi liên quan đến JS, bạn có thể sử dụng cửa sổ bảng điều khiển của tab trình kiểm tra của bất kỳ trình duyệt web nào. Tất cả các lỗi liên quan đến JS sẽ được ghi lại ở đó. Hy vọng điều này sẽ giúp
GetElementsByClassName innerHTML không hoạt động
.

Thuộc tính điều hướng DOM tuyệt vời khi các phần tử gần nhau. Nếu họ không thì sao?

Có các phương pháp tìm kiếm bổ sung cho điều đó

Nếu một phần tử có thuộc tính

Element
3, chúng ta có thể lấy phần tử đó bằng cách sử dụng phương thức
Element
4, bất kể nó ở đâu

Ví dụ

Element

Ngoài ra, có một biến toàn cục được đặt tên bởi

Element
3 tham chiếu đến phần tử

Element

…Đó là trừ khi chúng ta khai báo một biến JavaScript có cùng tên, thì nó sẽ được ưu tiên

Vui lòng không sử dụng các biến toàn cục có tên id để truy cập các phần tử

Hành vi này được mô tả, nhưng nó được hỗ trợ chủ yếu để tương thích

Trình duyệt cố gắng giúp chúng tôi bằng cách trộn các không gian tên của JS và DOM. Điều đó tốt cho các tập lệnh đơn giản, được đưa vào HTML, nhưng nhìn chung không phải là điều tốt. Có thể có xung đột đặt tên. Ngoài ra, khi một người đọc mã JS và không có HTML trong chế độ xem, thì không rõ biến đó đến từ đâu

Ở đây trong hướng dẫn này, chúng tôi sử dụng

Element
3 để tham chiếu trực tiếp một phần tử cho ngắn gọn, khi rõ ràng phần tử đó đến từ đâu

Trong cuộc sống thực,

Element
7 là phương pháp ưa thích

Element
3 phải là duy nhất

Element
3 phải là duy nhất. Chỉ có thể có một phần tử trong tài liệu với
Element
3 đã cho

Nếu có nhiều phần tử có cùng một

Element
3, thì hành vi của các phương thức sử dụng nó là không thể đoán trước, e. g.
Element
7 có thể trả lại bất kỳ yếu tố nào như vậy một cách ngẫu nhiên. Vì vậy, hãy tuân thủ quy tắc và giữ cho
Element
3 là duy nhất

Chỉ

Element
7, không phải
5

Phương thức

6 chỉ có thể được gọi trên đối tượng
7. Nó tìm kiếm
Element
3 đã cho trong toàn bộ tài liệu

Cho đến nay, phương thức linh hoạt nhất,

9 trả về tất cả các phần tử bên trong
Element
00 khớp với bộ chọn CSS đã cho

Ở đây chúng tôi tìm kiếm tất cả các phần tử

Element
01 là phần tử con cuối cùng

Element
0

Phương pháp này thực sự mạnh mẽ, bởi vì bất kỳ bộ chọn CSS nào cũng có thể được sử dụng

Cũng có thể sử dụng các lớp giả

Các lớp giả trong bộ chọn CSS như

Element
02 và
Element
03 cũng được hỗ trợ. Chẳng hạn,
Element
04 sẽ trả về tập hợp có các phần tử mà con trỏ hiện đang kết thúc (theo thứ tự lồng nhau. từ
Element
05 ngoài cùng đến cái lồng vào nhau nhất)

Lệnh gọi tới

Element
06 trả về phần tử đầu tiên cho bộ chọn CSS đã cho

Nói cách khác, kết quả giống như

Element
07, nhưng cái sau đang tìm kiếm tất cả các phần tử và chọn một phần tử, trong khi
Element
08 chỉ tìm kiếm một phần tử. Vì vậy, nó nhanh hơn và cũng ngắn hơn để viết

Các phương pháp trước đó là tìm kiếm DOM

Nó không tìm kiếm bất cứ thứ gì, nó chỉ kiểm tra xem

Element
00 có khớp với bộ chọn CSS đã cho hay không. Nó trả về
Element
10 hoặc
Element
11

Phương thức này rất hữu ích khi chúng ta đang lặp lại các phần tử (như trong một mảng hoặc thứ gì đó) và cố gắng lọc ra những phần tử mà chúng ta quan tâm

Ví dụ

Element
1

Tổ tiên của một phần tử là. cha mẹ, cha mẹ của cha mẹ, cha mẹ của nó, v.v. Tổ tiên cùng nhau tạo thành chuỗi cha mẹ từ phần tử đến đỉnh

Phương thức

Element
12 tìm tổ tiên gần nhất khớp với bộ chọn CSS. Bản thân
Element
00 cũng được đưa vào tìm kiếm

Nói cách khác, phương thức

Element
14 đi lên từ phần tử và kiểm tra từng phần tử cha. Nếu nó khớp với bộ chọn, thì quá trình tìm kiếm sẽ dừng lại và tổ tiên được trả về

Ví dụ

Element
7

Ngoài ra còn có các phương pháp khác để tìm kiếm các nút theo thẻ, lớp, v.v.

Ngày nay, chúng chủ yếu là lịch sử, vì

Element
15 mạnh mẽ hơn và viết ngắn hơn

Vì vậy, ở đây chúng tôi trình bày chúng chủ yếu để hoàn thiện, trong khi bạn vẫn có thể tìm thấy chúng trong các tập lệnh cũ

  • Element
    16 tìm kiếm các phần tử với thẻ đã cho và trả về bộ sưu tập của chúng. Tham số
    Element
    17 cũng có thể là dấu sao
    Element
    18 cho “bất kỳ thẻ nào”
  • Element
    19 trả về các phần tử có lớp CSS đã cho
  • Element
    70 trả về các phần tử có thuộc tính
    Element
    71 đã cho, trên toàn bộ tài liệu. Rất hiếm khi được sử dụng

Ví dụ

Element
5

Hãy tìm tất cả các thẻ

Element
72 bên trong bảng

Element
7

Đừng quên lá thư

Element
73

Các nhà phát triển mới làm quen đôi khi quên chữ cái

Element
73. Đó là, họ cố gắng gọi
Element
75 thay vì
Element
76

Chữ cái

Element
73 không có trong
6, vì nó trả về một phần tử duy nhất. Nhưng
Element
79 trả về một tập hợp các phần tử, vì vậy có
Element
73 bên trong

Nó trả về một bộ sưu tập, không phải một phần tử

Một sai lầm phổ biến khác của người mới là viết

6

Điều đó sẽ không hiệu quả, bởi vì nó lấy một tập hợp các đầu vào và gán giá trị cho nó thay vì cho các phần tử bên trong nó

Chúng ta nên lặp lại bộ sưu tập hoặc lấy một phần tử theo chỉ mục của nó, sau đó gán, như thế này

7

Tìm kiếm các phần tử

Element
51

Element
0

Tất cả các phương pháp

Element
52 trả về một bộ sưu tập trực tiếp. Các bộ sưu tập như vậy luôn phản ánh trạng thái hiện tại của tài liệu và “tự động cập nhật” khi nó thay đổi

Trong ví dụ bên dưới, có hai tập lệnh

  1. Cái đầu tiên tạo một tham chiếu đến bộ sưu tập của
    Element
    53. Hiện tại, chiều dài của nó là
    Element
    54
  2. Các tập lệnh thứ hai chạy sau khi trình duyệt gặp một
    Element
    53 nữa, vì vậy độ dài của nó là
    Element
    56

Element
1

Ngược lại,

Element
57 trả về một bộ sưu tập tĩnh. Nó giống như một mảng các phần tử cố định

Nếu chúng ta sử dụng nó thay thế, thì cả hai tập lệnh đều xuất ra

Element
54

Element
2

Bây giờ chúng ta có thể dễ dàng nhận thấy sự khác biệt. Bộ sưu tập tĩnh không tăng sau khi xuất hiện một

Element
59 mới trong tài liệu

Có 6 phương pháp chính để tìm kiếm các nút trong DOM

Phương thứcTìm kiếm theo. Có thể gọi một phần tử không?Live?
Element
15CSS-selector✔-
Element
57CSS-selector✔-________ 56
Element
3--________ 474
Element
71-✔________ 379tag hoặc
Element
77✔✔
Element
78class✔✔

Cho đến nay, được sử dụng nhiều nhất là

Element
15 và
Element
57, nhưng
61 có thể hữu ích hoặc được tìm thấy trong các tập lệnh cũ

bên cạnh đó

  • 62 để kiểm tra xem
    Element
    00 có khớp với bộ chọn CSS đã cho hay không
  • Element
    12 để tìm tổ tiên gần nhất khớp với bộ chọn CSS đã cho. Bản thân
    Element
    00 cũng được kiểm tra

Và hãy đề cập đến một phương pháp khác ở đây để kiểm tra mối quan hệ cha-con, vì nó đôi khi hữu ích

Có gì sai với InternalHTML?

Nhưng có một số nhược điểm khi sử dụng InternalHTML trong JavaScript. Nhược điểm của việc sử dụng thuộc tính InternalHTML trong JavaScript. Việc sử dụng InternalHTML rất chậm . Quá trình sử dụng InternalHTML chậm hơn nhiều vì nội dung của nó được xây dựng chậm, các nội dung và phần tử đã được phân tích cú pháp cũng được phân tích lại, điều này cần có thời gian.

InternalHTML có thể chứa các thẻ HTML không?

Thuộc tính innerHTML nhận một chuỗi chỉ định sự kết hợp hợp lệ giữa văn bản và phần tử. Khi thuộc tính innerHTML được đặt, chuỗi đã cho sẽ thay thế hoàn toàn nội dung hiện có của đối tượng. Nếu chuỗi chứa các thẻ HTML, thì chuỗi đó sẽ được phân tích cú pháp và định dạng khi được đặt vào tài liệu .

Làm cách nào để lấy văn bản theo tên lớp trong JavaScript?

Cú pháp như sau. var elements = document. getElementsByClassName(name); Ở đây “name” là tên lớp mà bạn đang muốn tìm và “elements” là một biến chứa mảng các phần tử.

Phương thức getElementsByClassName() trả về giá trị của nó ở định dạng nào?

Phương thức getElementsByClassName() trả về một HTMLCollection .