Anda dapat melakukannya seperti ini:
var list = document.getElementById("foo").getElementsByClassName("bar");
if (list && list.length > 0) {
list[0].innerHTML = "Goodbye world!";
}
atau, jika Anda ingin melakukannya dengan lebih sedikit pengecekan kesalahan dan lebih singkatnya, bisa dilakukan dalam satu baris seperti ini:
document.getElementById("foo").getElementsByClassName("bar")[0].innerHTML = "Goodbye world!";
Dalam penjelasan:
- Anda mendapatkan elemen dengan
id="foo"
.
- Anda kemudian menemukan objek yang ada di dalam objek yang dimiliki
class="bar"
.
- Itu mengembalikan nodeList seperti array, sehingga Anda referensi item pertama di nodeList itu
- Anda kemudian dapat mengatur
innerHTML
item itu untuk mengubah isinya.
Peringatan: beberapa browser lama tidak mendukung getElementsByClassName
(mis. Versi IE yang lebih lama). Fungsi itu dapat di-shim ke tempatnya jika tidak ada.
Di sinilah saya sarankan menggunakan perpustakaan yang memiliki dukungan pemilih CSS3 built-in daripada khawatir tentang kompatibilitas browser sendiri (biarkan orang lain melakukan semua pekerjaan). Jika Anda hanya ingin perpustakaan melakukan itu, maka Sizzle akan bekerja dengan baik. Dalam Sizzle, ini akan dilakukan seperti ini:
Sizzle("#foo .bar")[0].innerHTML = "Goodbye world!";
jQuery memiliki built-in library Sizzle dan di jQuery, ini akan menjadi:
$("#foo .bar").html("Goodbye world!");
document.getElementsByClassName
akan bekerja dengan baik.