Cách lấy phần tử html trong nút js
Trong hơn 20 năm kể từ khi được tiêu chuẩn hóa, JavaScript đã đi được một chặng đường rất dài. Mặc dù vào năm 2020, JavaScript có thể được sử dụng trên các máy chủ, trong khoa học dữ liệu và thậm chí trên các thiết bị IoT, nhưng điều quan trọng cần nhớ là trường hợp sử dụng phổ biến nhất của nó. trình duyệt web Show
Các trang web được tạo thành từ các tài liệu HTML và/hoặc XML. Các tài liệu này là tĩnh, chúng không thay đổi. Mô hình đối tượng tài liệu (DOM) là một giao diện lập trình được các trình duyệt triển khai để làm cho các trang web tĩnh hoạt động. API DOM có thể được sử dụng để thay đổi cấu trúc, kiểu và nội dung tài liệu. API mạnh đến mức vô số khung giao diện người dùng (jQuery, React, Angular, v.v. ) đã được phát triển xung quanh nó để làm cho các trang web động dễ phát triển hơn TypeScript là một siêu tập hợp đã nhập của JavaScript và nó cung cấp các định nghĩa loại cho API DOM. Các định nghĩa này luôn có sẵn trong bất kỳ dự án TypeScript mặc định nào. Trong số hơn 20.000 dòng định nghĩa trong lib. nhà thờ. d. ts, một cái nổi bật trong số những cái còn lại. 1. Loại này là xương sống để thao tác DOM với TypeScript
Ví dụ cơ bảnĐưa ra một chỉ số đơn giản hóa. tệp html
Hãy cùng khám phá một tập lệnh TypeScript thêm phần tử 3 vào phần tử 4
Sau khi biên dịch và chạy chỉ mục. trang html, HTML kết quả sẽ là
Giao diện ts// 1. Select the div element using the id propertyconst app = document.getElementById("app");// 2. Create a newelement programmaticallyconst p = document.createElement("p");// 3. Add the text contentp.textContent = "Hello, World!";// 4. Append the p element to the div elementapp?.appendChild(p);5Dòng đầu tiên của mã TypeScript sử dụng biến toàn cục 6. Kiểm tra biến cho thấy nó được xác định bởi giao diện 5 từ lib. nhà thờ. d. tập tin ts. Đoạn mã chứa lệnh gọi đến hai phương thức, 8 và 9 htmlHello, World! Định nghĩa cho phương pháp này như sau 2 Truyền cho nó một chuỗi id phần tử và nó sẽ trả về 1 hoặc 2. Phương pháp này giới thiệu một trong những loại quan trọng nhất, 1. Nó đóng vai trò là giao diện cơ sở cho mọi giao diện phần tử khác. Ví dụ: biến 4 trong ví dụ mã có kiểu 5. Ngoài ra, hãy lưu ý rằng phương thức này có thể trả về 2. Điều này là do phương thức không thể chắc chắn trước thời gian chạy nếu nó thực sự có thể tìm thấy phần tử đã chỉ định hay không. Ở dòng cuối cùng của đoạn mã, toán tử xâu chuỗi tùy chọn mới được sử dụng để gọi 7 htmlHello, World! Định nghĩa cho phương pháp này là (Tôi đã bỏ qua định nghĩa không dùng nữa) 1 Đây là một định nghĩa chức năng quá tải. Quá tải thứ hai là đơn giản nhất và hoạt động rất giống với phương thức 8. Vượt qua nó bất kỳ 20 nào và nó sẽ trả về một HTMLElement tiêu chuẩn. Định nghĩa này cho phép các nhà phát triển tạo các thẻ phần tử HTML duy nhất Ví dụ: 21 trả về phần tử 22, rõ ràng không phải là phần tử được chỉ định bởi đặc tả HTML
Đối với định nghĩa đầu tiên của 9, nó đang sử dụng một số mẫu chung nâng cao. Nó được hiểu rõ nhất là chia nhỏ thành nhiều phần, bắt đầu bằng biểu thức chung. 25. Biểu thức này xác định một tham số chung 26 bị ràng buộc với các phím của giao diện 27. Giao diện bản đồ chứa mọi tên thẻ HTML được chỉ định và giao diện loại tương ứng của nó. Ví dụ: đây là 5 giá trị được ánh xạ đầu tiên 1 Một số phần tử không thể hiện các thuộc tính duy nhất và vì vậy chúng chỉ trả về 1, nhưng các loại khác có các thuộc tính và phương thức duy nhất để chúng trả về giao diện cụ thể của chúng (sẽ mở rộng hoặc triển khai từ 1) Bây giờ, phần còn lại của định nghĩa 9. 11. Đối số đầu tiên 12 được định nghĩa là tham số chung 26. Trình thông dịch TypeScript đủ thông minh để suy ra tham số chung từ đối số này. Điều này có nghĩa là nhà phát triển không thực sự phải chỉ định tham số chung khi sử dụng phương thức; . Đó chính xác là những gì xảy ra; . Định nghĩa này là cách biến 4 từ đoạn mã nhận được một loại 5. Và nếu mã là 10, thì nó sẽ là một phần tử kiểu 11 Giao diện ts// 1. Select the div element using the id propertyconst app = document.getElementById("app");// 2. Create a newelement programmaticallyconst p = document.createElement("p");// 3. Add the text contentp.textContent = "Hello, World!";// 4. Append the p element to the div elementapp?.appendChild(p);12Hàm 13 trả về một 1. Giao diện 1 mở rộng giao diện 16 mở rộng giao diện 12. Tiện ích mở rộng nguyên mẫu này cho phép tất cả 18 sử dụng một tập hợp con các phương pháp tiêu chuẩn. Trong đoạn mã, chúng tôi sử dụng thuộc tính được xác định trên giao diện 12 để nối thêm phần tử 4 mới vào trang web htmlHello, World! Dòng cuối cùng của đoạn mã là 52. Phần trước, 13 , chi tiết rằng toán tử xâu chuỗi tùy chọn được sử dụng ở đây vì ________ 554 có thể có giá trị rỗng trong thời gian chạy. Phương pháp 7 được xác định bởi 5 Phương thức này hoạt động tương tự như phương thức 9 vì tham số chung 57 được suy ra từ đối số 58. 57 bị ràng buộc với một giao diện cơ sở khác 12 Sự khác biệt giữa ts// 1. Select the div element using the id propertyconst app = document.getElementById("app");// 2. Create a newelement programmaticallyconst p = document.createElement("p");// 3. Add the text contentp.textContent = "Hello, World!";// 4. Append the p element to the div elementapp?.appendChild(p);61 và ts// 1. Select the div element using the id propertyconst app = document.getElementById("app");// 2. Create a new element programmaticallyconst p = document.createElement("p");// 3. Add the text contentp.textContent = "Hello, World!";// 4. Append the p element to the div elementapp?.appendChild(p);62Trước đây, tài liệu này trình bày chi tiết giao diện 1 kéo dài từ 16 kéo dài từ 12. Trong DOM API có khái niệm về phần tử con. Ví dụ trong HTML sau, các thẻ 4 là con của phần tử 67 6 Sau khi nắm bắt phần tử 67, phần tử 61 sẽ trả về danh sách 60 có chứa phần tử 61. Thuộc tính 62 sẽ trả về một danh sách các nút tương tự như 63. Mỗi thẻ 4 sẽ vẫn thuộc loại 61, nhưng 63 có thể chứa các nút HTML bổ sung mà danh sách 60 không thể Sửa đổi html bằng cách xóa một trong các thẻ 4, nhưng giữ nguyên văn bản 6 Xem cách cả hai danh sách thay đổi. 61 hiện chỉ chứa phần tử 70 và 62 chứa một nút 72 thay vì hai nút 4. Phần 72 của 63 là 12 theo nghĩa đen có chứa văn bản 77. Danh sách 61 không chứa 12 này vì nó không được coi là một 1 Các phương pháp ts// 1. Select the div element using the id propertyconst app = document.getElementById("app");// 2. Create a newelement programmaticallyconst p = document.createElement("p");// 3. Add the text contentp.textContent = "Hello, World!";// 4. Append the p element to the div elementapp?.appendChild(p);01 và ts// 1. Select the div element using the id propertyconst app = document.getElementById("app");// 2. Create a new element programmaticallyconst p = document.createElement("p");// 3. Add the text contentp.textContent = "Hello, World!";// 4. Append the p element to the div elementapp?.appendChild(p);02Cả hai phương pháp này đều là những công cụ tuyệt vời để lấy danh sách các phần tử dom phù hợp với một tập hợp các ràng buộc độc đáo hơn. Chúng được định nghĩa trong lib. nhà thờ. d. ts như 7 Định nghĩa 02 tương tự như 04, ngoại trừ nó trả về một kiểu mới. 05. Loại trả về này về cơ bản là triển khai tùy chỉnh của phần tử danh sách JavaScript tiêu chuẩn. Có thể cho rằng, thay thế 06 bằng 07 sẽ dẫn đến trải nghiệm người dùng rất giống nhau. 05 chỉ thực hiện các thuộc tính và phương thức sau. 09 , 10, 11 và lập chỉ mục số. Ngoài ra, phương thức này trả về một danh sách các phần tử, không phải các nút, đó là những gì mà 63 đã trả về từ phương thức 13. Mặc dù điều này có vẻ như là một sự khác biệt, hãy lưu ý rằng giao diện 16 mở rộng từ 12 Để xem các phương thức này hoạt động, hãy sửa đổi mã hiện có thành 0 Quan tâm đến việc tìm hiểu thêm?Phần tốt nhất về lib. nhà thờ. d. định nghĩa loại ts là chúng phản ánh các loại được chú thích trong trang web tài liệu của Mạng nhà phát triển Mozilla (MDN). Ví dụ: giao diện 1 được ghi lại bởi trang HTMLElement này trên MDN. Các trang này liệt kê tất cả các thuộc tính, phương thức có sẵn và đôi khi là cả các ví dụ. Một khía cạnh tuyệt vời khác của các trang là chúng cung cấp liên kết đến các tài liệu tiêu chuẩn tương ứng. Đây là liên kết đến Khuyến nghị của W3C cho HTMLElement Làm cách nào để kết nối Nodejs với HTML?đường dẫn. join(__dirname, 'views', 'add-user. html'); Điều này sẽ đề cập đến vị trí tệp thực tế của mã html người dùng bổ sung. Với việc sử dụng mô-đun đường dẫn, nó sẽ hoạt động trên mọi loại hệ điều hành mà không gặp lỗi.
Làm cách nào bạn có thể truy cập các phần tử HTML bằng JavaScript?Từ DOM, người dùng có thể truy cập các phần tử HTML theo năm cách khác nhau trong JavaScript. . Nhận phần tử HTML theo Id Nhận phần tử HTML theo className Nhận phần tử HTML theo Tên Nhận phần tử HTML theo tagName Nhận phần tử HTML bằng CSS Selector |