Làm cách nào bạn có thể truy cập các phần tử HTML bằng JavaScript?
Làm cách nào bạn có thể truy cập các phần tử HTML bằng JavaScript? Show
Hãy coi đối tượng tài liệu là tài liệu HTML của bạn. Để lấy các phần tử HTML khác nhau, bạn có thể gọi một số phương thức tích hợp sẵn của đối tượng tài liệu với mục đích thực hiện truy xuất Tất cả các phần tử HTML được lưu trữ trong tài liệu, vì vậy mỗi khi chúng tôi lấy một phần tử HTML từ DOM, chúng tôi bắt đầu bằng 4 theo sau là phương thứcTrong bài đăng này, chúng tôi sẽ giới thiệu các phương pháp khác nhau mà bạn có thể sử dụng để lấy các phần tử HTML từ DOM. Đầu tiên, chúng ta xem qua cú pháp JavaScript trước ES6 trước khi chuyển sang các phương thức ES6 mới hơn. Chúng tôi kết thúc với một dự án gọn gàng áp dụng tất cả những gì chúng tôi học được vào thực tế nội dung
Phương thức JavaScript tiêu chuẩnCác phương thức JavaScript tiêu chuẩn để tìm nạp các phần tử từ DOM bao gồm getElementById(), getElementsByTagName() và getElementsByClassName() 1) Nhận một phần tử theo id của nógetElementById(". ") Chúng tôi sử dụng thuộc tính id HTML để chỉ các phần tử cụ thể. Vì một id là duy nhất - nó không nên xuất hiện cho nhiều hơn một phần tử - việc chọn một phần tử HTML với một id cụ thể sẽ đảm bảo trỏ đến phần tử đó
Ví dụ. Lấy thẻ 5 theo id của nó và thay đổi nội dung của nó thành thứ khác bằng JavaScript
Phân tích JavaScript nhanh
Chỉ vào DOM, yêu cầu trình duyệt tìm trong tài liệu HTML của chúng tôi
Yêu cầu trình duyệt đi vào đối tượng tài liệu
Lấy phần tử có id là "văn bản" từ tài liệu
Chỉ định cách chúng tôi muốn thay đổi phần tử đã chọn - trong trường hợp này là thay đổi nội dung của nó Trong ví dụ trên, chúng tôi đã yêu cầu trình duyệt vào trong tài liệu này, lấy phần tử có id là văn bản và thay đổi nội dung của phần tử đó Ghi chú. chính tả Bắt đầu bằng chữ thường và mỗi từ sau đó được chỉ định bằng chữ cái đầu tiên viết hoa. Điều này còn được gọi là vỏ lạc đà. JavaScript phân biệt chữ hoa chữ thường nên việc viết đúng chính tả là rất quan trọng để tránh lỗi >> Mẹo <<Giả sử chúng ta muốn làm những việc khác với thẻ 5 ở trên. Thay vì lấy phần tử từ DOM mỗi lần, chúng ta có thể lấy nó một lần và lưu trữ nó trong một biến để sử dụng nhiều lầnTạo một biến (bạn có thể gọi nó là bất cứ thứ gì bạn muốn) và đặt nó bằng phần tử p đã truy xuất
Bây giờ thay đổi nội dung của nó như vậy
2) Lấy một phần tử HTML theo lớp của nótài liệu. getElementsByClassName(". ")
Lấy các phần tử theo tên lớp trả về danh sách tất cả các phần tử trong tài liệu với lớp đã chỉ định. Vì lớp không phải là mã định danh duy nhất như id - có thể có nhiều hơn một phần tử trong cùng một lớp - phản hồi trả về là một danh sách Điều quan trọng là phải hiểu điều này bởi vì làm bất cứ điều gì với các phần tử được truy xuất theo cách này yêu cầu phải lặp qua danh sách để (1) kéo phần tử mà chúng ta muốn tác động hoặc (2) tác động đến tất cả các phần tử Thách đấu. Lấy các phần tử có lớp "demo" và chuyển nội dung của phần tử đầu tiên thành chữ hoa để nó có nội dung "TÔI LÀ PHẦN MỀM ĐẦU TIÊN CÓ LỚP DEMO"
Các bước để làm theo
3) Nhận một phần tử HTML bằng thẻ của nógetElementsByTagName(". ") Giống như getElementsByClassName() trả về danh sách tất cả các phần tử của một lớp cụ thể, getElementsByTagName() trả về danh sách tất cả các phần tử của một thẻ cụ thể Khi chúng ta nói "thẻ", chúng ta đang nói về các thẻ HTML như p, div, li, ul, v.v. Trong ví dụ trước, chúng ta có thể dễ dàng lấy các thẻ p theo tên thẻ của chúng thay vì tìm kiếm bằng tên lớp 0Tóm lược
Phương thức JavaScript ES6Cú pháp mới hơn cho phép chúng ta lấy một phần tử hoặc tất cả các phiên bản của một phần tử bằng hai phương thức tương đối linh hoạt Cả hai phương pháp đều sử dụng bộ chọn CSS để xác định (các) phần tử cần lấy. Điều này có nghĩa là khi chọn một phần tử theo id của nó, bạn sẽ tìm kiếm "#myID" vì đó là cách bạn tham chiếu phần tử đó trong CSS. Tương tự như vậy, nếu tìm kiếm theo lớp, nó sẽ là ". myClass", hoặc theo thẻ, "p" 1) Chọn một phần tửtruy vấnSelector(". ") Điều này sẽ trả về một phần tử duy nhất - nếu nhiều phần tử xuất hiện trong tài liệu, nó sẽ chỉ trả về phần tử đầu tiên Trong ví dụ trên, chúng ta có thể lấy phần tử p đầu tiên theo tên thẻ hoặc tên lớp bằng một phương thức duy nhất Thách đấu. Chuyển đoạn đầu tiên thành chữ hoa và tô màu nền cho đoạn đó bằng cách chọn 5 đầu tiên theo hai cách khác nhau
2Có sự dư thừa trong ví dụ khi chúng ta chọn cùng một phần tử theo những cách khác nhau, nhưng điều đó dẫn đến điểm chính, phải không? 2) Chọn tất cả các phiên bản của một phần tửtruy vấnSelectorAll(". ") Việc thêm "Tất cả" vào phương thức trước đó sẽ cho phép bạn truy cập vào một phương thức khác trả về danh sách tất cả các lần xuất hiện của phần tử Tương tự như querySelector(), querySelectorAll() tìm kiếm các phần tử bằng bộ chọn CSS. Một lần nữa, điều này có nghĩa là để tham chiếu một lớp, bạn sẽ cần dấu chấm hết ở phía trước (. lớp học của tôi);
Thử thách mã hóa. Nhấn vào nútThử nghiệm những gì bạn đã học được về các phương pháp lựa chọn JavaScript Mục tiêu. Để tạo một cửa sổ có ba nút. Mỗi nút đi kèm với một số đại diện cho thứ tự mà người dùng sẽ nhấp vào nó
Khi người dùng nhấp vào một nút, nút đó sẽ biến mất. Cuối cùng, bạn có một cửa sổ hoàn toàn mới với một nút đặt lại duy nhất, khi được nhấp vào, sẽ trả về màn hình ban đầu Xem Pen Click the Button (Code Challenge) của Klea Merkuri (@thehelpfultipper) trên CodePen Hãy tự mình thử hoặc làm theo vì chúng tôi sẽ hướng dẫn bạn từng bước 1) Thêm các thành phần HTMLBắt đầu bằng cách tạo kiểu cho phần thân, tạo màu nền, sau đó thêm văn bản và ba nút 3____142) Căn giữa các phần tửĐể hiển thị mọi thứ ở giữa màn hình, hãy đặt chiều rộng cho #main và đặt lề của nó thành tự động. Sau đó, căn chỉnh các phần tử bên trong #main ở giữa và tạo kiểu cho văn bản 5Đây là những gì bạn nên có cho đến nay 3) Tạo kiểu cho các nútĐã đến lúc làm cho các nút của chúng tôi ở dạng hoàn hảo nhất và tất cả bắt đầu bằng cách loại bỏ các kiểu nút mặc định 0
4) Đặt trạng thái di chuột của các nútKhi người dùng di chuột qua một nút, sẽ có một số dấu hiệu cho thấy đó là phần tử có thể nhấp được. Chúng tôi sẽ làm điều này theo hai cách
1Và để làm cho màu nền thay đổi khi di chuột ít chói tai hơn, hãy thêm 0 vào phần tử nútChúng tôi kết thúc với Đến thời điểm này, chúng tôi đã đặt màn hình ban đầu chỉ bằng HTML và CSS. Để các nút làm điều gì đó, chúng tôi sẽ giới thiệu JavaScript. Sẳn sàng? 5) Lưu trữ các phần tử từ DOM trong các biếnLấy các nút, văn bản và nội dung từ tài liệu HTML và đặt chúng trong các biến vì chúng ta sẽ cần trỏ đến chúng khi chúng ta thực hiện các thay đổi bằng JavaScript Bạn nên sử dụng phương pháp nào để lấy các phần tử? . bạn có thể làm Đối với các nút
Đối với thẻ body và thẻ tiêu đề
Chúng tôi sẽ làm điều này cho mã của chúng tôi 2Cách chúng tôi nhận được các nút là hoàn toàn bổ sung, nhưng nó dành cho mục đích trình diễn - mọi người đều được chào đón 6) Thay đổi màu nền của cơ thểKhi người dùng nhấp vào nút đầu tiên, có hai điều cần xảy ra
Ở đây, chúng ta sẽ cần thêm một trình lắng nghe sự kiện vào nút đầu tiên đang chờ "nhấp chuột" để thực hiện hai việc đó 3Nút đang chờ sự kiện cũng là nút cần biến mất, vì vậy để tham chiếu chính nó, chúng tôi sử dụng từ khóa this
7) Hiển thị văn bản mớiNhấp vào nút thứ hai sẽ thực hiện các hành động sau
4Chúng tôi sử dụng textBtn[1] vì chúng tôi có nút thứ hai bằng cách sử dụng getElementsByTagName(). Và chúng tôi đã thêm 1 xung quanh phần được gạch chân vì phần đó sẽ được điền sau khi người dùng nhấp vào nút cuối cùng
8) Nhắc tên người dùng và hiển thị tên đóCuối cùng, chúng tôi muốn hiển thị tên người dùng trong văn bản mới của chúng tôi. Điều này đòi hỏi chúng ta
Để yêu cầu người dùng nhập tên, chúng tôi sẽ sử dụng phương thức prompt() và lưu trữ đầu vào trong một biến mà chúng tôi đưa vào thẻ span 5
9) Nút Reset và các lỗiNếu bạn cố nhấp vào nút đặc biệt trước khi nhấp vào một trong hai nút đầu tiên, bạn sẽ gặp lỗi hiển thị trong bảng điều khiển Để tránh lỗi, chúng tôi cần thực thi thứ tự nút đối với hành vi của người dùng bằng một số logic có điều kiện Đầu tiên, thêm vùng chứa lỗi trong tệp HTML ngay bên dưới h3 ban đầu bị ẩn khỏi chế độ xem. Cung cấp cho vùng chứa lỗi một số kiểu 6 7Thứ hai, thêm nút đặt lại thứ tư và gán lớp 'ẩn' cho nút đó. Chúng ta sẽ chuyển đổi lớp này sau 8Lấy nút đặt lại ẩn và vùng chứa lỗi từ tài liệu HTML và gán chúng cho các biến 9Tạo hai biến kiểm soát sẽ cho phép kiểm tra xem một số hành động đã diễn ra chưa 0Các biến điều khiển có bản chất là boolean (i. e. chúng đúng hoặc sai) và rất tuyệt khi sử dụng logic có điều kiện để kiểm tra xem có điều gì xảy ra không Chúng tôi bắt đầu với lỗi và isFirstClicked là sai vì không có lỗi khi tập lệnh bắt đầu cũng như nút đầu tiên được nhấp Khi người dùng nhấp vào nút đầu tiên, isFirstClicked sẽ trở thành true 2Sau đó, khi người dùng nhấp vào nút thứ hai, chúng tôi sẽ kiểm tra xem nút đầu tiên có được nhấp hay không trước khi tiếp tục các hành động của nút đặc biệt. Ngoài ra, hãy kiểm tra xem lỗi có đúng không (có nghĩa là thông báo lỗi hiển thị) - nếu không, hãy ẩn thông báo lỗi Nếu nút đầu tiên không được nhấp, chúng tôi sẽ đưa ra lỗi 1Bây giờ, khi nhấp vào nút đặc biệt, chúng tôi sẽ sử dụng thử. bắt câu lệnh để đưa ra một lỗi. Lỗi này sẽ phát sinh khi người dùng chưa nhấp vào nút thứ hai vì sẽ không có thẻ span trong nội dung tài liệu
2Chúng tôi cập nhật error thành true vì chúng tôi kiểm tra biến này khi nhấp vào hai nút còn lại và trả về sẽ giết phần còn lại của mã để nó không hiển thị Kết thúc các hành động của nút đặc biệt bằng cách hiển thị nút đặt lại 3Cuối cùng, thực hiện các hành động của nút đặt lại khi nhấp 3Và trong chức năng reset(), đảm bảo ẩn nút đặt lại 4Chúng tôi cũng đang 'đặt lại' biến điều khiển isFirstClicked để chúng tôi duy trì thứ tự các lần nhấp vào nút trong các vòng liên tiếp Tuyệt vời, bạn đã hoàn tất. Bạn có thể tìm thấy mã đã hoàn thành trên GitHub. Vui lòng tải xuống HTML và CSS nếu bạn chỉ muốn thực hành JavaScript của mình Làm cách nào để lấy tất cả các phần tử HTML trong JavaScript?Trước tiên, hãy chọn tất cả các phần tử bằng bộ chọn $('*'), chọn mọi phần tử của tài liệu. Sử dụng. each() để duyệt qua tất cả các phần tử và kiểm tra xem nó có ID không. Nếu nó có ID thì đẩy nó vào mảng
Làm cách nào bạn có thể truy cập phần tử HTML bằng thuộc tính ID bằng JavaScript?Nhận phần tử theo ID bằng cách sử dụng GetElementById()
. Gọi phương thức getElementById() trên đối tượng tài liệu. Phương thức getElementById() nhận một đối số là chuỗi. 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. |