15 Metode JavaScript Untuk Manipulasi DOM untuk Pengembang Web
Sebagai pengembang web, Anda harus sering memanipulasi DOM, model objek yang digunakan oleh browser untuk tentukan struktur logis halaman web, dan berdasarkan pada struktur ini untuk membuat elemen HTML di layar.
HTML mendefinisikan struktur DOM default. Namun dalam banyak kasus Anda mungkin ingin memanipulasi ini dengan JavaScript, biasanya untuk menambah fungsionalitas ekstra ke suatu situs.
Dalam posting ini, Anda akan menemukan daftar 15 metode JavaScript dasar bahwa membantu manipulasi DOM. Anda kemungkinan akan sering menggunakan metode ini dalam kode Anda, dan Anda juga akan menemukannya di tutorial JavaScript kami.
1. querySelector ()
Itu querySelector ()
metode mengembalikan elemen pertama yang cocok dengan satu atau lebih penyeleksi CSS. Jika tidak ada kecocokan ditemukan, itu kembali batal
.
Sebelum querySelector ()
diperkenalkan, pengembang banyak menggunakan getElementById ()
metode yang mengambil elemen dengan yang ditentukan id
nilai.
Meskipun getElementById ()
masih merupakan metode yang bermanfaat, tetapi dengan yang lebih baru querySelector ()
dan querySelectorAll ()
metode kami bebas untuk elemen target berdasarkan pemilih CSS, jadi kami memiliki lebih banyak fleksibilitas.
Sintaksis
var ele = document.querySelector (selector);
ele
- Elemen pencocokan pertama ataubatal
(jika tidak ada elemen yang cocok dengan pemilih)pemilih
- satu atau lebih penyeleksi CSS, seperti"#fooId"
,".fooClassName"
,".class1.class2"
, atau".class1, .class2"
Contoh Kode
Dalam contoh ini, yang pertama paragraf satu paragraf dua paragraf tiga Uji Tidak seperti itu Elemen yang cocok dikembalikan sebagai a Contoh di bawah ini menggunakan HTML yang sama dengan yang sebelumnya. Namun, dalam contoh ini, semua paragraf dipilih dengan paragraf satu paragraf dua paragraf tiga Acara lihat apa yang terjadi pada elemen HTML, seperti mengklik, fokus, atau memuat, yang dapat kami bereaksi dengan JavaScript. Kami dapat menetapkan fungsi JS ke mendengarkan untuk acara ini dalam elemen dan melakukan sesuatu ketika acara itu terjadi. Ada tiga cara yang bisa Anda lakukan menetapkan fungsi ke acara tertentu. Jika Metode Menghentikan peristiwa yang menggelegak, yaitu mencegah panggilan dari setiap pendengar acara untuk jenis acara yang sama di leluhur elemen. Untuk menggunakan fitur ini, Anda dapat menggunakan 2 sintaks: Pendengar disebut hanya saat pertama kali peristiwa itu terjadi, maka ia akan terlepas secara otomatis dari acara tersebut, dan tidak akan dipicu olehnya lagi. Tindakan default acara tidak dapat dihentikan dengan metode preventDefault (). Dalam contoh ini, kami menambahkan pendengar acara klik bernama Tetapkan Itu Menggunakan sintaksis yang sama dengan yang disebutkan di atas Mengikuti Contoh Kode yang kami gunakan di Itu Anda nanti dapat menambahkan elemen ini ke halaman web dengan menggunakan yang berbeda metode untuk penyisipan DOM, seperti Dengan contoh berikut, Anda bisa membuat elemen paragraf baru: Itu Anak yang akan dimasukkan dapat berupa a elemen yang baru dibuat, atau sebuah sudah ada. Dalam kasus terakhir, ia akan dipindahkan dari posisi sebelumnya ke posisi anak terakhir. Dalam contoh ini, kami menyisipkan Dalam demo interaktif berikut, surat-surat dari Lihat bagaimana caranya Itu Dalam contoh ini, kami menghapus Itu Dalam contoh ini elemen anak Ketika Anda harus membuat elemen baru yang perlu menjadi sama dengan elemen yang sudah ada di halaman web, Anda bisa buat salinan elemen yang sudah ada menggunakan Dalam contoh ini, kami membuat salinan untuk Hasil dari, Itu Jika elemen anak yang dirujuk tidak ada atau Anda lulus secara eksplisit Dalam contoh ini, kami membuat yang baru Demo interaktif ini bekerja mirip dengan demo kami sebelumnya milik Itu Saya t menciptakan a Mengapa kita tidak langsung menambahkan elemen ke pohon DOM? Karena penyisipan DOM menyebabkan perubahan tata letak, dan ini adalah proses browser yang mahal karena beberapa penyisipan elemen konsekuensi akan menyebabkan lebih banyak perubahan tata letak. Di sisi lain, menambahkan elemen ke a Dalam contoh ini, kami membuat beberapa baris dan sel tabel dengan Akibatnya, lima baris - masing-masing berisi satu sel dengan angka dari 1 hingga 5 sebagai konten - akan dimasukkan ke dalam tabel. Terkadang kamu mau periksa nilai properti CSS elemen sebelum melakukan perubahan. Anda dapat menggunakan Dalam contoh ini, kami mendapatkan dan mengingatkan penghitungan Itu Dalam contoh ini, kami menambahkan Itu Dalam contoh ini, kami memberitahukan nilai Itu Dalam contoh ini, kami menghapus querySelector ()
metode dan warnanya diubah menjadi merah.
var firstDiv = document.querySelector ('div'); firstDiv.style.color = 'red';
Demo Interaktif
querySelector ()
metode dalam demo interaktif berikut. Ketikkan pemilih yang cocok dengan yang dapat Anda temukan di dalam kotak biru (mis. #tiga
), dan klik tombol Pilih. Perhatikan bahwa jika Anda mengetik .blok
, hanya contoh pertama akan dipilih.2.
querySelectorAll ()
querySelector ()
yang mengembalikan hanya instance pertama dari semua elemen yang cocok, querySelectorAll ()
mengembalikan semua elemen yang cocok dengan pemilih CSS yang ditentukan.NodeList
objek yang akan menjadi objek kosong jika tidak ditemukan elemen yang cocok.Sintaksis
var eles = document.querySelectorAll (selector);
Eles
- SEBUAH NodeList
objek dengan semua elemen yang cocok sebagai nilai properti. Objek kosong jika tidak ada kecocokan yang ditemukan.pemilih
- satu atau lebih penyeleksi CSS, seperti "#fooId"
, ".fooClassName"
, ".class1.class2"
, atau ".class1, .class2"
Contoh Kode
querySelectorAll ()
, dan berwarna biru.
paragraf var = document.querySelectorAll ('p'); untuk (var p paragraf) p.style.color = 'biru';
3.
addEventListener ()
foo ()
adalah fungsi khusus, Anda dapat mendaftarkannya sebagai pendengar acara klik (panggil ketika elemen tombol diklik) dengan tiga cara:
var btn = document.querySelector ('button'); btn.onclick = foo;
var btn = document.querySelector ('button'); btn.addEventListener ('click', foo);
addEventListener ()
(solusi ketiga) memiliki beberapa pro; itu adalah standar terbaru - memungkinkan penugasan lebih dari satu fungsi sebagai pendengar acara untuk satu acara - dan dilengkapi dengan serangkaian opsi yang bermanfaat.Sintaksis
ele.addEventListener (evt, listener, [options]);
ele
- Elemen HTML yang akan didengar pendengar acara.evt
- Acara yang ditargetkan.pendengar
- Biasanya, fungsi JavaScript.pilihan
- (opsional) Objek dengan sekumpulan properti boolean (tercantum di bawah).Pilihan Apa yang terjadi, ketika diatur ke benar
?menangkap
ele.addEventListener (evt, listener, true)
ele.addEventListener (evt, listener, capture: true);
sekali
pasif
Contoh Kode
foo
, ke Tag HTML.
var btn = document.querySelector ('button'); btn.addEventListener ('click', foo); function foo () alert ('hello');
Demo Interaktif
foo ()
fungsi kustom sebagai pendengar acara ke salah satu dari tiga acara berikut: memasukkan
, klik
atau mouseover
& picu acara yang dipilih di bidang input bawah dengan mengarahkan, mengklik, atau mengetiknya.4.
removeEventListener ()
removeEventListener ()
metode melepaskan pendengar acara sebelumnya ditambahkan dengan addEventListener ()
metode dari acara itu sedang mendengarkan.Sintaksis
ele.removeEventListener (evt, listener, [options]);
addEventListener ()
metode (kecuali untuk sekali
opsi yang dikecualikan). Opsi ini digunakan untuk sangat spesifik dalam mengidentifikasi pendengar yang akan dilepaskan.Contoh Kode
addEventListener ()
, di sini kita menghapus klik event listener yang disebut foo
dari elemen.
btn.removeEventListener ('klik', foo);
5.
createElement ()
createElement ()
metode menciptakan elemen HTML baru menggunakan nama tag HTML dibuat, seperti 'p'
atau 'div'
.AppendChild ()
(lihat nanti di posting ini).Sintaksis
document.createElement (tagName);
tagName
- Nama tag HTML yang ingin Anda buat. Contoh Kode
var pEle = document.createElement ('p')
6.
appendChild ()
appendChild ()
metode menambahkan elemen sebagai anak terakhir ke elemen HTML yang memanggil metode ini.Sintaksis
ele.appendChild (childEle)
ele
- Elemen HTML yang digunakan childEle
ditambahkan sebagai anak terakhir.childEle
- Elemen HTML ditambahkan sebagai anak terakhir dari ele
.Contoh Kode
elemen adalah sebagai anak dari a
appendChild ()
dan yang disebutkan di atas createElement ()
metode.
var div = document.querySelector ('div'); var strong = document.createElement ('strong'); strong.textContent = 'Halo'; div.appendChild (kuat);
Demo Interaktif
#Sebuah
untuk #r
adalah elemen anak dari # parent-one
, # parent-two
, dan # parent-three
pemilih id.appendChild ()
metode bekerja oleh mengetikkan satu nama pemilih orang tua dan satu anak ke dalam kolom input di bawah ini. Anda dapat memilih anak-anak yang termasuk orang tua lain.7.
removeChild ()
removeChild ()
metode menghapus elemen anak tertentu dari elemen HTML yang memanggil metode ini.Sintaksis
ele.removeChild (childEle)
ele
- Elemen induk dari childEle
.childEle
- Elemen anak dari ele
.Contoh Kode
elemen yang kami tambahkan sebagai anak ke
appendChild ()
metode. div.removeChild (kuat);
8.
gantiChild ()
gantiChild ()
metode mengganti elemen anak dengan yang lain milik elemen induk yang memanggil metode ini.Sintaksis
ele.replaceChild (newChildEle, oldChileEle)
ele
- Elemen induk yang anak-anak harus diganti.newChildEle
- Elemen anak dari ele
itu akan menggantikan oldChildEle
.oldChildEle
- Elemen anak dari ele
, yang akan diganti oleh newChildEle
.Contoh Kode
milik
menandai.
var em = document.createElement ('em'); var strong = document.querySelector ('strong'); var div = document.querySelector ('div'); em.textContent = 'hi'; div.replaceChild (em, strong);
9.
cloneNode ()
cloneNode ()
metode.Sintaksis
var dupeEle = ele.cloneNode ([mendalam])
dupeEle
- Salinan ele
elemen.ele
- Elemen HTML yang akan disalin.dalam
- (opsional) Nilai boolean. Jika diatur ke benar
, dupeEle
akan memiliki semua elemen anak ele
telah, jika diatur ke Salah
itu akan dikloning tanpa anak-anaknya.Contoh Kode
elemen dengan
cloneNode ()
, lalu kita tambahkan ke appendChild ()
metode. elemen, keduanya dengan
Halo
string sebagai konten.
var strong = document.querySelector ('strong'); var copy = strong.cloneNode (true); var div = document.querySelector ('div'); div.appendChild (copy);
10.
insertBefore ()
insertBefore ()
metode menambahkan elemen anak tertentu sebelum elemen anak lain. Metode ini dipanggil oleh elemen induk.batal
sebagai gantinya, elemen anak yang akan dimasukkan ditambahkan sebagai anak terakhir dari orang tua (mirip dengan appendChild ()
).Sintaksis
ele.insertBefore (newEle, refEle);
ele
- Elemen induk.baruEle
- Elemen HTML baru yang akan dimasukkan.refEle
- Elemen anak dari ele
sebelum itu baruEle
akan dimasukkan.Contoh Kode
elemen dengan beberapa teks di dalamnya, dan tambahkan sebelum itu
elemen di dalam
var em = document.createElement ('em'); var strong = document.querySelector ('strong'); var div = document.querySelector ('div'); em.textContent = 'hi'; div.insertBefore (em, strong);
Demo Interaktif
appendChild ()
metode. Di sini Anda hanya perlu mengetikkan pemilih id dari dua elemen anak (dari #Sebuah
untuk #r
) ke dalam kotak input, dan Anda dapat melihat caranya insertBefore ()
Metode memindahkan anak yang ditentukan pertama sebelum kedua.11.
createDocumentFragment ()
createDocumentFragment ()
Metode mungkin tidak seterkenal yang lain dalam daftar ini, namun merupakan metode yang penting, terutama jika Anda menginginkannya masukkan beberapa elemen secara massal, seperti menambahkan beberapa baris ke tabel.DocumentFragment
obyek, yang pada dasarnya adalah simpul DOM yang bukan bagian dari pohon DOM. Ini seperti buffer tempat kami dapat menambahkan dan menyimpan elemen lain (mis. Beberapa baris) terlebih dahulu, sebelum menambahkannya ke simpul yang diinginkan di pohon DOM (mis. Ke tabel).DocumentFragment
obyek tidak menyebabkan perubahan tata letak, jadi Anda bisa menambahkan elemen sebanyak yang Anda inginkan sebelum melewati mereka ke pohon DOM, menyebabkan perubahan tata letak hanya pada titik ini.Sintaksis
document.createDocumentFragment ()
Contoh Kode
createElement ()
metode, lalu tambahkan ke a DocumentFragment
objek, akhirnya menambahkan fragmen dokumen ke HTML menggunakan
appendChild ()
metode.
var table = document.querySelector ("table"); var df = document.createDocumentFragment (); untuk (var i = 0; i<5; i++) var td = document.createElement("td"); var tr = document.createElement("tr"); td.textContent = i; tr.appendChild(td) df.appendChild(tr); table.appendChild(df);
12.
getComputedStyle ()
gaya
properti untuk melakukan hal yang sama, namun getComputedStyle ()
Metode telah dibuat hanya untuk tujuan ini, itu mengembalikan nilai yang dihitung hanya baca semua properti CSS dari elemen HTML yang ditentukan.Sintaksis
var style = getComputedStyle (ele, [pseudoEle])
gaya
- SEBUAH CSSStyleDeclaration
objek yang dikembalikan oleh metode. Ini memegang semua properti CSS dan nilai-nilai mereka dari ele
elemen.ele
- Elemen HTML yang nilai properti CSS diambil.pseudoEle
- (opsional) Suatu string yang mewakili elemen pseudo (misalnya, ':setelah'
). Jika ini disebutkan, maka properti CSS dari pseudo-elemen yang ditentukan terkait dengan ele
akan dikembalikan.Contoh Kode
lebar
nilai a getComputedStyle ()
metode.
var style = getComputedStyle (document.querySelector ('div')); waspada (style.width);
13.
setAttribute ()
setAttribute ()
metode baik menambahkan atribut baru ke elemen HTML, atau memperbarui nilai atribut yang sudah ada.Sintaksis
ele.setAttribute (nama, nilai);
ele
- Elemen HTML yang ditambahkan atribut, atau atribut yang diperbarui.nama
- Nama atribut.nilai
- Nilai atribut.Contoh Kode
dapat diedit
atribut ke a setAttribute ()
metode, yang akan mengubah kontennya dapat diedit. var div = document.querySelector ('div'); div.setAttribute ('contenteditable', ")
14.
getAttribute ()
getAttribute ()
metode mengembalikan nilai atribut yang ditentukan milik elemen HTML tertentu.Sintaksis
ele.getAttribute (nama);
ele
- Elemen HTML dari atribut yang diminta.nama
- Nama atribut.Contoh Kode
dapat diedit
atribut milik getAttribute ()
metode. var div = document.querySelector ('div'); lansiran (div.getAttribute ('contenteditable'))
15.
removeAttribute ()
removeAttribute ()
metode menghapus atribut yang diberikan dari elemen HTML tertentu.Sintaksis
ele.removeAttribute (nama);
ele
- Elemen HTML yang atributnya akan dihapus.nama
- Nama atribut.Contoh Kode
dapat diedit
atribut dari var div = document.querySelector ('div'); div.removeAttribute ('contenteditable');