JavaScript - Senarai Node DOM

Pengenalan kepada Senarai Node DOM

Hai sana, para pengembang web yang bersemangat! Hari ini, kita akan memulai perjalanan menarik ke dunia JavaScript DOM Node Lists. Jangan khawatir jika Anda masih baru dalam programming - saya akan menjadi panduan ramah Anda, dan kita akan mengambil langkah ini secara bertahap. Pada akhir panduan ini, Anda akan dapat mengubah halaman web seperti seorang ahli!

JavaScript - DOM Node Lists

Apa Itu Senarai Node DOM?

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

Sebuah Senarai Node adalah hanya sebuah koleksi dari node-node ini. Itu seperti memiliki daftar tamu untuk sebuah pesta, di mana setiap tamu adalah elemen dari halaman web Anda.

Contoh 1: Mendapatkan Senarai Node

mari kita lihat sebuah contoh sederhana:

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

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

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

NodeList(3) [p, p, p]

Ini memberitahu kita bahwa kita memiliki Senarai Node yang mengandung tiga elemen paragraf.

Bekerja dengan Senarai Node

Sekarang kita memiliki Senarai Node, mari kita lihat apa yang bisa kita lakukan dengannya!

Contoh 2: Mengiterasi Melalui Senarai Node

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

paragraf.forEach((paragraph, index) => {
console.log(`Paragraf ${index + 1}: ${paragraph.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 dalam Senarai Node. Itu seperti mengenal setiap tamu di daftar tamu pesta secara individual!

Magic of Live vs. Static Node Lists

Sekarang, mari kita lihat hal yang menarik. Senarai Node dapat sia-sia atau statis.

Sebuah Senarai Node yang hidup adalah seperti daftar tamu yang magis yang memperbarui dirinya sendiri ketika orang datang atau meninggalkan pesta. Sebaliknya, sebuah Senarai Node statis adalah seperti sebuah foto dari daftar tamu pada saat tertentu - foto itu tidak akan diperbarui saat tamu baru datang.

Contoh 3: Senarai Node yang Hidup

<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 sebuah Senarai Node yang hidup. Ketika kita menambahkan Charlie ke daftar, Senarai Node guests secara otomatis diperbarui!

Contoh 4: Senarai 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 sebuah Senarai Node yang statis. Meskipun kita menambahkan Charlie, Senarai Node guests tidak berubah. Itu seperti kita mengambil sebuah foto dari daftar tamu dan foto itu tidak akan diperbarui saat tamu baru datang.

Perbedaan antara HTMLCollection dan NodeList

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

HTMLCollection

Sebuah HTMLCollection selalu hidup. Itu seperti daftar tamu yang terus memperbarui dirinya sendiri.

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

NodeList

Sebuah NodeList dapat sia-sia atau statis, tergantung pada bagaimana ia diciptakan.

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

Berikut ini adalah tabel yang menyummarisakan perbedaan mereka:

Fitur HTMLCollection NodeList
Hidup/Statis Selalu hidup Bisa hidup atau statis
Isi 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 di sana Anda punya nya, teman-teman! Kita telah melakukan perjalanan melalui tanah Senarai Node DOM, dari konsep dasar hingga ke halusnya antara senarai hidup 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 pergi sendiri...)

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

Credits: Image by storyset