Làm cách nào để tìm nạp div trong JavaScript?

Giá trị chuỗi phải khớp với giá trị của thuộc tính ID được chỉ định trong Đánh dấu HTML

Trong trường hợp này. hộp

Sau khi khớp, nó sẽ trả về đối tượng HTMLDivElement

const box = document.getElementById("box");

Gán nó vào một hộp được gọi là hằng số

Nếu không khớp, phương thức getElementById() sẽ trả về null

Phương thức getElementByID() sẽ chỉ khả dụng trong đối tượng tài liệu chung

Bởi vì, giá trị của thuộc tính ID phải là duy nhất cho toàn bộ trang HTML

Nhận phần tử theo Id bằng cách sử dụng querySelector()

Ngoài ra, phương thức querySelector() cũng lấy một phần tử theo id trong JavaScript

Gọi phương thức querySelector() trên đối tượng tài liệu

Phương thức querySelector() cũng nhận một đối số là chuỗi

const box = document.querySelector("#box");

Giá trị chuỗi phải khớp với giá trị của thuộc tính ID được chỉ định trong Đánh dấu HTML cùng với ký hiệu Bộ chọn CSS

Ví dụ. # đăng ký ID

Vì vậy, giá trị chuỗi sẽ là #box

Nhận phần tử theo ID InnerHTML

Nhận phần tử con theo ID

Bạn cũng có thể lấy phần tử con theo id bằng cách sử dụng. tài sản trẻ em

Div có phần tử hộp Id có phần tử div con có id

Nhận tham chiếu DOM đến phần tử hộp div là phần tử gốc

Gán nó vào một hộp cố định

Các. thuộc tính con lấy tất cả các phần tử bên trong phần tử hộp div

Phần tử chúng tôi muốn lấy là div với id box-inner

Gọi phương thức item() trên hộp. những đứa trẻ

Truyền giá trị thuộc tính ID của phần tử con

Trong trường hợp này. hộp bên trong

const box = document.getElementById("box");
const boxInner = box.children.item("box-inner");

Nhận phần tử theo ID InnerHTML

Tìm hiểu cách đặt/lấy văn bản hoặc Phần tử HTML bằng thuộc tính có tên là innerHTML

const box = document.getElementById("box");
box.innerHTML = "Box";

Bạn cũng có thể thêm các Phần tử HTML bằng cách sử dụng InternalHTML

const box = document.getElementById("box");
box.innerHTML = "

Box

";

Nhận phần tử theo giá trị ID

Tìm hiểu cách lấy giá trị của bất kỳ thành phần biểu mẫu HTML nào bằng phương thức getElementById()

Để làm điều đó, hãy gọi phương thức getElementById() trên đối tượng tài liệu truyền giá trị của thuộc tính ID làm đối số

Để chạy chương trình trên, lưu tên file là anyName. html(chỉ mục. html) và nhấp chuột phải vào tệp và chọn tùy chọn mở bằng máy chủ trực tiếp trong trình chỉnh sửa Mã VS

Sau đây là đầu ra. Khi bạn nhấp chuột và đặt phím mũi tên, bạn sẽ nhận được đầu ra sau

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

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 pháp linh hoạt nhất,

9 trả về tất cả các phần tử bên trong
  • The
  • test
  • has
  • passed
0 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ử

  • The
  • test
  • has
  • passed
1 là phần tử con cuối cùng

  • The
  • test
  • has
  • passed

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ư

  • The
  • test
  • has
  • passed
2 và
  • The
  • test
  • has
  • passed
3 cũng được hỗ trợ. Chẳng hạn,
  • The
  • test
  • has
  • passed
4 sẽ trả về tập hợp có các phần tử mà con trỏ hiện đã kết thúc (theo thứ tự lồng nhau. từ
  • The
  • test
  • has
  • passed
5 ngoài cùng đến cái lồng vào nhau nhất)

Lệnh gọi tới

  • The
  • test
  • has
  • passed
6 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ư

  • The
  • test
  • has
  • passed
7, 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
  • The
  • test
  • has
  • passed
8 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

  • The
  • test
  • has
  • passed
0 có khớp với bộ chọn CSS đã cho hay không. Nó trả về
...
...

0 hoặc
...
...

1

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ụ

...
...

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

...
...

2 tìm tổ tiên gần nhất khớp với bộ chọn CSS. Bản thân
  • The
  • test
  • has
  • passed
0 cũng được đưa vào tìm kiếm

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

...
...

4 đ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ụ

Contents

  • Chapter 1
  • Chapter 2

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ì

...
...

5 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ũ

  • ...
    ...
    
    
    6 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ố
    ...
    ...
    
    
    7 cũng có thể là dấu sao
    ...
    ...
    
    
    8 cho “bất kỳ thẻ nào”
  • ...
    ...
    
    
    9 trả về các phần tử có lớp CSS đã cho
  • Contents

    • Chapter 1
    • Chapter 2
    0 trả về các phần tử có thuộc tính

    Contents

    • Chapter 1
    • Chapter 2
    1 đã cho, trên toàn bộ tài liệu. Rất hiếm khi được sử dụng

Ví dụ

// get all divs in the document
let divs = document.getElementsByTagName('div');

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

Contents

  • Chapter 1
  • Chapter 2
2 bên trong bảng

Your age:

Đừng quên lá thư

Contents

  • Chapter 1
  • Chapter 2
3

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

Contents

  • Chapter 1
  • Chapter 2
3. Đó là, họ cố gắng gọi

Contents

  • Chapter 1
  • Chapter 2
5 thay vì

Contents

  • Chapter 1
  • Chapter 2
6

Chữ cái

Contents

  • Chapter 1
  • Chapter 2
3 không có trong
6, vì nó trả về một phần tử duy nhất. Nhưng

Contents

  • Chapter 1
  • Chapter 2
9 trả về một tập hợp các phần tử, vì vậy có

Contents

  • Chapter 1
  • Chapter 2
3 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

// doesn't work
document.getElementsByTagName('input').value = 5;

Đ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

// should work (if there's an input)
document.getElementsByTagName('input')[0].value = 5;

Tìm kiếm các yếu tố

// get all divs in the document
let divs = document.getElementsByTagName('div');
1

Element
0

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

// get all divs in the document
let divs = document.getElementsByTagName('div');
2 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
    // get all divs in the document
    let divs = document.getElementsByTagName('div');
    3. Hiện tại, chiều dài của nó là
    // get all divs in the document
    let divs = document.getElementsByTagName('div');
    4
  2. Các tập lệnh thứ hai chạy sau khi trình duyệt gặp thêm một
    // get all divs in the document
    let divs = document.getElementsByTagName('div');
    3, vì vậy độ dài của nó là
    // get all divs in the document
    let divs = document.getElementsByTagName('div');
    6

Element
1

Ngược lại,

// get all divs in the document
let divs = document.getElementsByTagName('div');
7 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

// get all divs in the document
let divs = document.getElementsByTagName('div');
4

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

// get all divs in the document
let divs = document.getElementsByTagName('div');
9 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?
...
...

5CSS-selector✔-
// get all divs in the document
let divs = document.getElementsByTagName('div');
7CSS-selector✔-
6
Element
3--
Your age:
4

Contents

  • Chapter 1
  • Chapter 2
1-✔

Contents

  • Chapter 1
  • Chapter 2
9tag hoặc
Your age:
7✔✔
Your age:
8class✔✔

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

...
...

5 và
// get all divs in the document
let divs = document.getElementsByTagName('div');
7, nhưng
// doesn't work
document.getElementsByTagName('input').value = 5;
1 có thể hữu ích một cách rời rạc hoặc được tìm thấy trong các chữ viết cũ

bên cạnh đó

  • // doesn't work
    document.getElementsByTagName('input').value = 5;
    2 để kiểm tra xem
    • The
    • test
    • has
    • passed
    0 có khớp với bộ chọn CSS đã cho hay không
  • ...
    ...
    
    
    2 để tìm tổ tiên gần nhất khớp với bộ chọn CSS đã cho. Bản thân
    • The
    • test
    • has
    • passed
    0 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

Làm cách nào để có được div trong JavaScript?

Có thể truy cập phần tử getElementById() .

Làm cách nào để gọi một div trong JavaScript?

Sử dụng tài liệu. bật querySelector để chọn một div và sau đó chọn một phần tử bên trong nó với lớp đã cho . Chúng tôi chỉ gọi querySelector trên phần tử có ID mydiv để chọn các mục bên trong div đó. Do đó, innerDiv là div với lớp myclass.

Làm cách nào để truy cập nội dung div trong JavaScript?

Sử dụng thuộc tính textContent để lấy văn bản của phần tử div , e. g. kết quả const = phần tử. văn bảnnội dung. Thuộc tính textContent sẽ trả về nội dung văn bản của div và hậu duệ của nó. Nếu phần tử trống, một chuỗi rỗng được trả về.

Làm cách nào để chọn một div cụ thể trong JavaScript?

getElementsByTagName() sẽ chọn tất cả các phiên bản của một phần tử HTML nhất định trên trang web hiện tại dựa trên tên thẻ của nó, i. e. . getElementsByTagName("div") là tất cả những gì bạn cần làm để chọn tất cả các phần tử