15 JavaScript metode za DOM manipulaciju za web-programere
Kao web developer, često morate manipulirati DOM, objektni model koji koriste preglednici odrediti logičku strukturu na temelju ove strukture prikazati HTML elemente na zaslonu.
HTML definira oznaku zadana DOM struktura. Međutim, u mnogim slučajevima to ćete htjeti manipulirati pomoću JavaScripta, obično kako biste to učinili dodajte dodatne funkcionalnosti na web-lokaciju.
U ovom postu naći ćete popis 15 osnovnih JavaScript metoda da pomoć DOM manipulaciji. Te metode vjerojatno ćete često koristiti u svom kodu, a također ćete ih pronaći u našim JavaScript uputama.
1. querySelector ()
querySelector ()
način vraća prvi element koji odgovara jednom ili više CSS selektora. Ako nije pronađen nijedan rezultat, vraća se nula
.
Prije querySelector ()
je uveden, programeri naširoko koristi parametra getElementByID ()
metoda koja dohvaća element s određenim iskaznica
vrijednost.
Iako parametra getElementByID ()
je još uvijek korisna metoda, ali s novijom querySelector ()
i querySelectorAll ()
metode kojima smo slobodni ciljnih elemenata na temelju bilo kojeg CSS selektora, stoga imamo veću fleksibilnost.
Sintaksa
var ele = document.querySelekktor (selektor);
ele
- Prvi element podudaranja ilinula
(ako nijedan element ne odgovara selektorima)selektor
- jedan ili više CSS selektora, kao što je"#FooId"
,".FooClassName"
,”.Class1.class2"
, ili".class1, .class2"
Primjer koda
U ovom primjeru prvi stavku 1 stavak 2 stavak tri Testirajte Za razliku od Odgovarajući elementi vraćaju se kao Primjer u nastavku koristi isti HTML kao i prethodni. Međutim, u ovom primjeru svi paragrafi su odabrani s stavku 1 stavak 2 stavak tri Događaji odnosi se na ono što se događa s HTML elementom, kao što je klik, fokusiranje ili učitavanje, na koje možemo reagirati s JavaScriptom. Možemo dodijeliti JS funkcije slušati za te događaje u elementima i učinite nešto kada se događaj dogodio. Postoje tri načina na koje možete dodijeliti funkciju određenom događaju. Ako Metoda Zaustavlja mjehuriće događaja, tj. Sprječava pozivanje bilo kojeg slušatelja događaja za isti tip događaja u precima elementa. Da biste koristili ovu značajku, možete koristiti 2 sintakse: Slušatelj se naziva samo prvi put kada se događaj dogodi, a zatim se automatski odvaja od događaja i više ga neće aktivirati.. Zadana radnja događaja ne može se zaustaviti pomoću metode preventDefault (). U ovom primjeru dodajemo pozivatelja koji je nazvao događaj klika Dodijeli Koristi istu sintaksu kao i gore spomenuta Slijedeći primjerak koda koji smo koristili na Kasnije možete dodati ovaj element na web-stranicu koristeći različite metode za DOM umetanje, kao što su U sljedećem primjeru možete izraditi novi element stavka: Dijete koje treba umetnuti može biti a novostvoreni element, ili već postojeće. U potonjem slučaju, premjestit će se iz svog prethodnog položaja u položaj posljednjeg djeteta. U ovom primjeru umećemo U sljedećem interaktivnom prikazu, slova iz Provjerite kako U ovom primjeru uklanjamo U ovom primjeru podređeni element Kada morate stvoriti novi element koji mora biti isti kao već postojeći element na web stranici možete jednostavno stvorite kopiju već postojećeg elementa koristiti U ovom primjeru stvaramo kopiju za Kao rezultat, Ako referentni podređeni element ne postoji ili ste eksplicitno prošli U ovom primjeru stvaramo novo Ovaj interaktivni demo djeluje slično kao i prethodni demo koji pripada grupi To stvara a Zašto jednostavno ne dodamo elemente izravno u DOM stablo? Zbog umetanja DOM-a uzrokuje promjene izgleda, i to je skup proces preglednika budući da će višestruka dosljedna umetanja elemenata uzrokovati više promjena izgleda. S druge strane, dodavanje elemenata u U ovom primjeru izrađujemo više redaka i ćelija tablice s oznakom Kao rezultat, pet redaka - od kojih svaki sadrži jednu ćeliju s brojem od 1 do 5 kao sadržaj - umetnut će se unutar tablice. Ponekad to želiš provjerite vrijednosti svojstava CSS-a elementa prije bilo kakvih promjena. Možete upotrijebiti U ovom primjeru dobivamo i upozoravamo računane U ovom primjeru dodajemo U ovom primjeru upozoravamo na vrijednost U ovom primjeru uklanjamo querySelector ()
metoda i njezina se boja mijenja u crvenu.
var firstDiv = document.querySelector ('div'); firstDiv.style.color = 'crvena';
Interaktivni demo
querySelector ()
u sljedećem interaktivnom prikazu. Samo utipkajte selektor koji odgovara onima koje možete pronaći unutar plavih okvira (npr. #tri
), a zatim kliknite gumb Odaberi. Imajte na umu da ako upišete .blok
, samo prvi stupanj bit će odabran.2.
querySelectorAll ()
querySelector ()
koji vraća samo prvu instancu svih odgovarajućih elemenata, querySelectorAll ()
vraća sve elemente koji odgovaraju navedenom CSS selektoru.NodeList
objekt koji će biti prazan objekt ako nisu pronađeni odgovarajući elementi.Sintaksa
var eles = document.querySelectorAll (selektor);
ELES
- NodeList
objekt sa svim podudarnim elementima kao vrijednosti svojstava. Objekt nije prazan ako nije pronađen nijedan rezultat.selektor
- jedan ili više CSS selektora, kao što je "#FooId"
, ".FooClassName"
, ”.Class1.class2"
, ili ".class1, .class2"
Primjer koda
querySelectorAll ()
, i obojene su plavo.
var paragrafi = document.querySelectorAll ('p'); za (var p odlomaka) p.style.color = 'plava';
3.
addEventListener ()
foo ()
je prilagođena funkcija, možete je registrirati kao slušatelj događaja klika (nazovite kada se klikne na element gumba) na tri načina:
var btn = document.querySelector ('gumb'); btn.onclick = foo;
var btn = document.querySelector ('gumb'); btn.addEventListener ('klik', foo);
addEventListener ()
(treća otopina) neke profesionalce; to je najnoviji standard - dopuštajući dodjeljivanje više od jedne funkcije slušateljima događaja na jedan događaj - i dolazi s korisnim skupom opcija.Sintaksa
ele.addEventListener (evt, slušatelj, [opcije]);
ele
- HTML element koji slušatelj događaja sluša.EVT
- Ciljani događaj.slušalac
- Tipično, JavaScript funkcija.opcije
- (izborno) Objekt s nizom boolean svojstava (naveden u nastavku).Opcije Što se događa, kada je postavljeno na pravi
?uhvatiti
ele.addEventListener (evt, slušatelj, istinito)
ele.addEventListener (evt, slušatelj, capture: true);
jednom
pasivno
Primjer koda
foo
, prema HTML oznaka.
var btn = document.querySelector ('gumb'); btn.addEventListener ( 'klik', foo); funkcija foo () alert ('hello');
Interaktivni demo
foo ()
prilagođena funkcija kao slušatelj događaja na bilo koji od sljedeća tri događaja: ulazni
, klik
ili Prelazak mišem
& pokrenite odabrani događaj u donjem polju za unos lebdeći prstom, klikom ili upisivanjem u njega.4.
removeEventListener ()
removeEventListener ()
način odvaja slušaoca događaja prethodno dodano s oznakom addEventListener ()
način od događaja za koji sluša.Sintaksa
ele.removeEventListener (evt, slušatelj, [opcije]);
addEventListener ()
metoda (osim za jednom
opcija koja je isključena). Opcije se koriste da bi bile vrlo specifične u vezi s identificiranjem slušatelja koji će biti odvojen.Primjer koda
addEventListener ()
, ovdje uklanjamo pozvanog slušatelja događaja klika foo
od element.
btn.removeEventListener ( 'klik', foo);
5.
createElement ()
createElement ()
način stvara novi HTML element koristiti naziv HTML oznake kao što je 'P'
ili 'Div'
.AppendChild ()
(vidi kasnije u ovom postu).Sintaksa
document.createElement (naziv oznake);
naziv oznake
- Naziv HTML oznake koju želite stvoriti. Primjer koda
var pEle = document.createElement ('p')
6.
appendChild ()
appendChild ()
način dodaje element kao posljednje dijete na HTML element koji poziva ovu metodu.Sintaksa
ele.appendChild (childEle)
ele
- HTML element na koji childEle
dodaje se kao posljednje dijete.childEle
- HTML element dodan kao posljednje dijete korisnika ele
.Primjer koda
element je kao dijete
appendChild ()
i gore spomenuto createElement ()
metode.
var div = document.querySelector ('div'); var strong = document.createElement ('jaki'); strong.textContent = 'Pozdrav'; div.appendChild (jaka);
Interaktivni demo
#A
do #R
su dječji elementi # Roditelj-on
, # Roditelj dva
, i # Roditelj tri
Odabir ID-a.appendChild ()
metoda radi prema upisivanjem imena roditelja i jednog djeteta u polja za unos u nastavku. Možete odabrati i djecu koja pripadaju drugom roditelju.7.
removeChild ()
removeChild ()
način uklanja specificirani podređeni element iz HTML elementa koji poziva ovu metodu.Sintaksa
ele.removeChild (childEle)
ele
- Roditeljski element od childEle
.childEle
- Dječji element od ele
.Primjer koda
element koji smo dodali kao dijete
appendChild ()
način. div.removeChild (jaka);
8.
replaceChild ()
replaceChild ()
način zamjenjuje podređeni element s drugim koji pripadaju roditeljskom elementu koji poziva tu metodu.Sintaksa
ele.replaceChild (newChildEle, oldChileEle)
ele
- Roditeljski element za koji se djeca trebaju zamijeniti.newChildEle
- Dijete element od ele
koji će zamijeniti oldChildEle
.oldChildEle
- Dijete element od ele
, koji će biti zamijenjen newChildEle
.Primjer koda
pripadaju
označiti.
var em = document.createElement ('em'); var strong = document.querySelector ('jaki'); var div = document.querySelector ('div'); em.textContent = 'hi'; div.replaceChild (em, strong);
9.
cloneNode ()
cloneNode ()
način.Sintaksa
var dupeEle = ele.cloneNode ([duboko])
dupeEle
- Kopija ele
element.ele
- HTML element za kopiranje.duboko
- (izborno) Booleova vrijednost. Ako je postavljeno na pravi
, dupeEle
će imati sve podređene elemente ele
ima, ako je postavljeno na lažan
klonirat će se bez djece.Primjer koda
element s
cloneNode ()
, zatim ćemo je dodati u appendChild ()
način. elemenata, oba s oznakom
zdravo
niz kao sadržaj.
var strong = document.querySelector ('jaki'); var copy = strong.cloneNode (true); var div = document.querySelector ('div'); div.appendChild (kopija);
10.
insertBefore ()
insertBefore ()
način dodaje navedeni podređeni element ispred drugog elementa podređenog. Metoda se zove nadređeni element.nula
na njegovo mjesto dodaje se podređeni element koji treba umetnuti kao posljednje dijete roditelja (slično appendChild ()
).Sintaksa
ele.insertBefore (newEle, refEle);
ele
- Osnovni element.newEle
- Novi HTML element koji treba umetnuti.refEle
- Dječji element od ele
prije toga newEle
će biti umetnuta.Primjer koda
element s nekim tekstom unutar njega i dodajte ga prije
element unutar. \ t
var em = document.createElement ('em'); var strong = document.querySelector ('jaki'); var div = document.querySelector ('div'); em.textContent = 'hi'; div.insert Prije (em, jak);
Interaktivni demo
appendChild ()
metoda. Ovdje trebate samo upisati selektore id dvaju podređenih elemenata (od #A
do #R
) u okvire za unos i možete vidjeti kako insertBefore ()
metoda pomiče prvo navedeno dijete prije drugi.11.
createDocumentFragment ()
createDocumentFragment ()
metoda ne mora biti tako dobro poznata kao i ostali na ovom popisu, ali je ipak važna, pogotovo ako to želite umetnite više elemenata u rasutom stanju, kao što je dodavanje više redaka u tablicu.DocumentFragment
objekt, što je u biti DOM čvor koji nije dio DOM stabla. To je kao tampon gdje možemo dodati i pohraniti druge elemente (npr. Višestruke retke), prije nego ih dodamo u željeni čvor u DOM stablu (npr. Tablici).DocumentFragment
objekt ne uzrokuje promjene izgleda, tako da mu možete dodati što više elemenata prije nego ih proslijedite DOM stablu, uzrokujući promjenu izgleda samo u ovom trenutku.Sintaksa
document.createDocumentFragment ()
Primjer koda
createElement ()
zatim dodajte u DocumentFragment
objekt, konačno dodati taj fragment dokumenta u HTML koristiti
appendChild ()
način.
var tablica = document.querySelector ("tablica"); var df = document.createDocumentFragment (); za (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 ()
ele.style
vlasništvo učiniti isto, međutim getComputedStyle ()
metoda je napravljena samo za tu svrhu vraća izračunate vrijednosti samo za čitanje svih CSS svojstava određenog HTML elementa.Sintaksa
var style = getComputedStyle (ele, [pseudoEle])
stil
- CSSStyleDeclaration
objekt koji se vraća metodom. Sadrži sva svojstva CSS-a i njihove vrijednosti ele
element.ele
- HTML element čije su vrijednosti CSS-a preuzete.pseudoEle
- (izborno) Niz koji predstavlja pseudo-element (na primjer, ':nakon'
). Ako je to spomenuto, onda su CSS svojstva određenog pseudo-elementa povezana s ele
bit će vraćeno.Primjer koda
širina
vrijednost a getComputedStyle ()
način.
var style = getComputedStyle (document.querySelector ('div')); upozorenje (style.width);
13.
setAttribute ()
setAttribute ()
metoda dodaje novi atribut u HTML element, ili ažurira vrijednost atributa koji već postoji.Sintaksa
ele.setAttribute (ime, vrijednost);
ele
- Element HTML-a kojem je dodan atribut ili koji je ažuriran.Ime
- Naziv atributa.vrijednost
- Vrijednost atributa.Primjer koda
contenteditable
atribut za setAttribute ()
koja će pretvoriti njen sadržaj za uređivanje. var div = document.querySelector ('div'); div.setAttribute ( 'contenteditable' ")
14.
getAttribute ()
getAttribute ()
način vraća vrijednost navedenog atributa pripadaju određenom HTML elementu.Sintaksa
ele.getAttribute (ime);
ele
- HTML element za koji se traži atribut.Ime
- Naziv atributa.Primjer koda
contenteditable
atribut koji pripada getAttribute ()
način. var div = document.querySelector ('div'); alert (div.getAttribute ( 'contenteditable'))
15.
removeAttribute ()
removeAttribute ()
način uklanja određeni atribut određenog HTML elementa.Sintaksa
ele.removeAttribute (ime);
ele
- HTML element koji treba ukloniti.Ime
- Naziv atributa.Primjer koda
contenteditable
atribut iz var div = document.querySelector ('div'); div.removeAttribute ( 'contenteditable');