JavaScript - Daftar Node DOM

Pengenalan ke Daftar Node DOM

Hai teman-teman pengembang web yang bersemangat! Hari ini, kita akan memulai perjalanan menarik ke dunia JavaScript DOM Node Lists. Jangan khawatir jika Anda baru belajar programming - saya akan menjadi panduan ramah Anda, dan kita akan bergerak langkah demi langkah. Pada akhir panduan ini, Anda akan dapat mengubah halaman web seperti seorang ahli!

JavaScript - DOM Node Lists

Apa Itu Daftar Node DOM?

Sebelum kita masuk ke detil, mari mulai dari dasar. Gamarkanlah halaman web seperti pohon keluarga. DOM (Document Object Model) adalah seperti pohon keluarga bagi halaman web. Setiap elemen pada halaman - baik itu paragraf, tombol, atau gambar - adalah anggota keluarga ini, atau dalam istilah teknis, "node."

Daftar Node adalah sekumpulan node ini. Itu seperti memiliki daftar tamu untuk pesta, di mana setiap tamu adalah elemen dari halaman web Anda.

Contoh 1: Mendapatkan Daftar Node

Mari lihat contoh sederhana:

<div>
<p>Paragraf 1</p>
<p>Paragraf 2</p>
<p>Paragraf 3</p>
</div>

<script>
let paragrafs = document.querySelectorAll('p');
console.log(paragrafs);
</script>

Dalam contoh ini, querySelectorAll('p') mengembalikan Daftar Node yang berisi semua elemen <p>. Jika Anda menjalankan ini di konsol browser Anda, Anda akan melihat seperti ini:

NodeList(3) [p, p, p]

Ini memberitahu kita bahwa kita memiliki Daftar Node yang berisi tiga elemen paragraf.

Menggunakan Daftar Node

Sekarang kita sudah mendapatkan Daftar Node, mari lihat apa yang bisa kita lakukan dengannya!

Contoh 2: Mengiterasi Melalui Daftar Node

let paragrafs = document.querySelectorAll('p');

paragrafs.forEach((paragraf, index) => {
console.log(`Paragraf ${index + 1}: ${paragraf.textContent}`);
});

Kode ini akan mengoutputkan:

Paragraf 1: Paragraf 1
Paragraf 2: Paragraf 2
Paragraf 3: Paragraf 3

Di sini, kita menggunakan metode forEach untuk mengiterasi melalui setiap paragraf di Daftar Node. Itu seperti menghubungi setiap tamu di daftar tamu pesta secara individual!

Magic of Live vs. Static Node Lists

Sekarang, mari kita lihat hal yang menarik. Daftar Node bisa sia-sia atau statis.

Daftar Node yang live adalah seperti daftar tamu yang magis yang memperbarui dirinya sendiri saat orang datang atau pergi dari pesta. Sebaliknya, Daftar Node statis seperti snapshot daftar tamu di saat tertentu - itu tidak berubah meskipun tamu baru datang.

Contoh 3: Daftar Node Live

<ul id="guestList">
<li>Alice</li>
<li>Bob</li>
</ul>

<script>
let guests = document.getElementsByTagName('li');
console.log(guests.length); // Output: 2

let newGuest = document.createElement('li');
newGuest.textContent = 'Charlie';
document.getElementById('guestList').appendChild(newGuest);

console.log(guests.length); // Output: 3
</script>

Dalam contoh ini, getElementsByTagName mengembalikan Daftar Node live. Ketika kita menambahkan Charlie ke daftar, Daftar Node guests secara otomatis diperbarui!

Contoh 4: Daftar Node Statis

<ul id="guestList">
<li>Alice</li>
<li>Bob</li>
</ul>

<script>
let guests = document.querySelectorAll('li');
console.log(guests.length); // Output: 2

let newGuest = document.createElement('li');
newGuest.textContent = 'Charlie';
document.getElementById('guestList').appendChild(newGuest);

console.log(guests.length); // Tetap output: 2
</script>

Di sini, querySelectorAll mengembalikan Daftar Node statis. Meskipun kita menambahkan Charlie, Daftar Node guests tidak berubah. Itu seperti kita mengambil foto daftar tamu dan foto itu tidak diperbarui saat tamu baru datang.

Perbedaan antara HTMLCollection dan NodeList

Sekarang, mari kita bicarakan tentang dua saudara sepupu di keluarga DOM: HTMLCollection dan NodeList. Mereka mirip, tetapi mereka memiliki ciri khususnya sendiri.

HTMLCollection

Sebuah HTMLCollection selalu live. Itu seperti daftar tamu yang terus diperbarui.

let divs = document.getElementsByTagName('div'); // Mengembalikan HTMLCollection

NodeList

Sebuah NodeList bisa sia-sia atau statis, tergantung pada bagaimana itu diciptakan.

let paragrafs = document.querySelectorAll('p'); // Mengembalikan NodeList statis
let childNodes = document.body.childNodes; // Mengembalikan NodeList live

Berikut adalah tabel yang menggabungkan perbedaan mereka:

Fitur HTMLCollection NodeList
Live/Statis Selalu live Bisa live atau statis
Konten Hanya node elemen Bisa termasuk semua jenis node
Mengakses item Dengan nama, id, atau indeks Hanya dengan indeks
Metode forEach Tidak tersedia Tersedia

Kesimpulan

Dan begitu saja, teman-teman! Kita telah melakukan perjalanan melalui tanah Daftar Node DOM, dari konsep dasar ke kehalusan daftar live dan statis. Ingat, latihan membuat sempurna. Cobalah contoh ini, eksperimen dengannya, dan segera Anda akan dapat mengubah halaman web seperti seorang pengembang berpengalaman!

Sebelum kita berpisah, ini adalah sedikit lelucon pengembang web untuk Anda: Mengapa pengembang JavaScript memakai kacamata? Karena dia tidak bisa C#! (Pahamkah? C Sharp? Baiklah, saya akan keluar sendiri...)

Terus coding, terus belajar, dan yang paling penting, terus bersenang-senang dengan JavaScript!

Credits: Image by storyset