Materi JavaScript 5
Mengubah Isi Halaman dengan DOM
oleh: Suryo Adhy Chandra, ST
Sampai bab sebelumnya, hasil kerja JavaScript kita tampil lewat alert atau
console.log. Keduanya berguna untuk belajar, tetapi bukan itu yang dilihat
pengunjung. Bab ini membahas cara JavaScript mengubah isi halaman secara langsung, dan di
sinilah JavaScript mulai terasa gunanya.
1. Apa itu DOM
Ketika browser membaca berkas HTML, ia tidak menyimpannya sebagai teks biasa. Browser mengubahnya menjadi susunan objek bertingkat yang disebut DOM, singkatan dari Document Object Model. Setiap tag menjadi satu objek, dan objek itu bisa dibaca maupun diubah oleh JavaScript.
2. Menemukan elemen yang ingin diubah
Sebelum mengubah, kita harus menemukan elemennya lebih dulu. Cara yang paling banyak dipakai
sekarang adalah querySelector, karena penulisannya sama dengan pemilih di CSS.
querySelector hanya mengembalikan elemen pertama yang cocok. Kalau ada
lima elemen ber-class sama dan kamu ingin mengubah semuanya, pakai
querySelectorAll lalu ulangi dengan perulangan.
3. Mengubah teks di dalam elemen
Setelah elemennya ditemukan, isinya dapat diganti lewat textContent.
Ada juga innerHTML yang memungkinkan kita menyisipkan tag HTML, bukan sekadar
teks biasa.
textContent bila isinya berasal dari masukan pengguna.
Memakai innerHTML untuk teks yang diketik pengguna membuka celah keamanan,
karena tag apa pun yang mereka ketik akan ikut dijalankan browser. Pakai
innerHTML hanya untuk isi yang kamu tulis sendiri.
4. Mengubah tampilan lewat class
Kita bisa mengubah gaya langsung lewat style, tetapi cara yang lebih rapi
adalah menyiapkan class di CSS lalu menambah atau melepasnya dari JavaScript.
5. Membuat elemen baru
Selain mengubah yang sudah ada, kita juga bisa membuat elemen baru lalu memasukkannya ke halaman. Prosesnya tiga langkah: buat, isi, lalu tempelkan.
Pola ini yang dipakai untuk menampilkan data dari daftar. Misalnya menampilkan seluruh isi sebuah array sebagai daftar di halaman:
6. Kesalahan yang paling sering terjadi
Ada satu kesalahan yang hampir dialami semua pemula, dan pesannya membingungkan:
Cannot read properties of null.
Penyebabnya, skrip dijalankan sebelum elemen h1 sempat dibaca browser, sehingga
pencarian elemennya menghasilkan null. Ada dua cara mengatasinya:
- Letakkan tag
<script>tepat sebelum penutup</body>, ini cara paling sederhana. - Atau tambahkan atribut
deferpada tag script di bagian head.
7. Latihan
- Buat halaman berisi satu judul dan satu tombol. Ketika tombol ditekan, judulnya berganti teks.
- Buat daftar kosong
<ul id="daftar"></ul>, lalu isi dengan lima nama memakai perulangan. - Buat kotak berwarna yang berganti warna setiap kali diklik, memakai
classList.toggle.
tombol.addEventListener("click", function () { ... }).