Bạn có thể làm như thế này:
var list = document.getElementById("foo").getElementsByClassName("bar");
if (list && list.length > 0) {
list[0].innerHTML = "Goodbye world!";
}
hoặc, nếu bạn muốn làm điều đó với ít kiểm tra lỗi hơn và ngắn gọn hơn, nó có thể được thực hiện trong một dòng như thế này:
document.getElementById("foo").getElementsByClassName("bar")[0].innerHTML = "Goodbye world!";
Giải thích:
- Bạn có được các yếu tố với
id="foo"
.
- Sau đó, bạn tìm thấy các đối tượng được chứa trong đối tượng đó có
class="bar"
.
- Điều đó trả về một nodeList giống như mảng, vì vậy bạn tham chiếu mục đầu tiên trong nodeList đó
- Sau đó, bạn có thể đặt
innerHTML
mục đó để thay đổi nội dung của nó.
Hãy cẩn thận: một số trình duyệt cũ hơn không hỗ trợ getElementsByClassName
(ví dụ: các phiên bản IE cũ hơn). Chức năng đó có thể được đưa vào vị trí nếu thiếu.
Đây là nơi tôi khuyên bạn nên sử dụng thư viện có hỗ trợ bộ chọn CSS3 tích hợp thay vì lo lắng về khả năng tương thích trình duyệt (hãy để người khác làm tất cả công việc). Nếu bạn chỉ muốn một thư viện để làm điều đó, thì Sizzle sẽ hoạt động rất tốt. Trong Sizzle, điều này sẽ được thực hiện như thế này:
Sizzle("#foo .bar")[0].innerHTML = "Goodbye world!";
jQuery có thư viện Sizzle tích hợp và trong jQuery, đây sẽ là:
$("#foo .bar").html("Goodbye world!");
document.getElementsByClassName
sẽ làm việc tốt