15 JavaScript metode za DOM manipulacijo za spletne razvijalce
Kot spletni razvijalec pogosto potrebujete manipulacijo DOM, objektni model, ki ga uporabljajo brskalniki določite logično strukturo spletnih strani in na podlagi te strukture prikaže elemente HTML na zaslonu.
HTML določa privzeta struktura DOM. V mnogih primerih pa boste morda želeli s tem upravljati z JavaScriptom, običajno, da bi dodajte dodatne funkcije na spletno mesto.
V tej objavi boste našli seznam 15 osnovnih metod JavaScripta to pomoč manipulaciji DOM. Te metode boste verjetno pogosto uporabljali v svoji kodi in nanje boste naleteli tudi v naših vajah za JavaScript.
1. querySelector ()
The querySelector ()
metodo vrne prvi element, ki se ujema z enim ali več selektorji CSS. Če ne najdete nobenega ujemanja, se vrne nič
.
Pred tem querySelector ()
je bil uveden, razvijalci široko uporabljajo getElementById ()
metodo, ki pridobiva element s podanim id
vrednost.
Čeprav getElementById ()
je še vedno uporabna metoda, vendar z novejšo querySelector ()
in querySelectorAll ()
metode, do katerih smo svobodni ciljnih elementov, ki temeljijo na izbirniku CSS, zato imamo več prožnosti.
Sintaksa
var ele = document.querySelector (izbirnik);
ele
- Prvi element ujemanja alinič
(če noben element ne ustreza selektorjem)izbirnik
- enega ali več CSS selektorjev, kot npr"#fooId"
,".fooClassName"
,".class1.class2"
, ali".class1, .class2"
Primer kode
V tem primeru prvi prvega odstavka drugega odstavka odstavka tretjega odstavka Preizkusite Za razliko od Elementi ujemanja se vrnejo kot Spodnji primer uporablja isti HTML kot prejšnji. Vendar pa so v tem primeru z odstavki izbrani vsi odstavki prvega odstavka drugega odstavka odstavka tretjega odstavka Dogodki nanašajte se na to, kaj se zgodi z elementom HTML, kot je klik, fokusiranje ali nalaganje, na katerega se lahko odzovemo s JavaScriptom. Funkcijam JS lahko pripišemo funkcije poslušaj za te dogodke v elementih in narediti nekaj, ko se je dogodek zgodil. Obstajajo trije načini dodelite funkcijo določenemu dogodku. Če Metoda Ustavi mehurjanje dogodkov, tj. Preprečuje klicanje poslušalcev dogodkov za isti tip dogodka v prednikih elementov. Če želite uporabiti to funkcijo, lahko uporabite 2 sintaksi: Poslušalec se imenuje samo prvič, ko se dogodek zgodi, nato pa se samodejno loči od dogodka in ga ne bo več sprožil.. Privzetega dejanja dogodka ni mogoče zaustaviti z metodo preventDefault (). V tem primeru dodamo poslušalca dogodka klika Dodeli The Uporablja isto sintakso kot prej omenjeno Sledite kodeksu, ki smo ga uporabili pri The Kasneje lahko dodate ta element na spletno stran z uporabo različnih metode za vstavljanje DOM, kot naprimer V naslednjem primeru lahko ustvarite nov element odstavka: The Otrok, ki ga je treba vstaviti, je lahko a novost, ali že obstoječega. V slednjem primeru se premakne iz prejšnjega položaja v položaj zadnjega otroka. V tem primeru vstavimo a V naslednjem interaktivnem predstavitvenem prikazu so črke iz Preverite, kako The V tem primeru odstranimo The V tem primeru je podrejeni element Ko morate ustvariti nov element, ki mora biti enako kot že obstoječi element na spletni strani lahko preprosto ustvarite kopijo že obstoječega elementa uporabljati V tem primeru izdelamo kopijo za Kot rezultat, The Če referenčni podrejeni element ne obstaja ali ga izrecno posredujete V tem primeru ustvarimo novo Ta interaktivna predstavitev deluje podobno kot naš prejšnji demo, ki pripada skupini The To ustvarja a Zakaj ne dodajamo elementov neposredno drevesu DOM? Ker je vstavljanje DOM povzroči spremembe postavitve, in to je drag proces brskalnika ker bo večkratno vstavljanje elementov povzročilo več sprememb v postavitvi. Po drugi strani pa dodajanje elementov v V tem primeru izdelamo več vrstic in celic tabel z Zato bo v tabelo vstavljeno pet vrstic - vsaka od njih vsebuje eno celico s številko od 1 do 5 -. Včasih si to želiš preverite vrednosti lastnosti CSS elementa pred kakršnimi koli spremembami. Uporabite lahko V tem primeru dobimo in opozorimo izračunano The V tem primeru dodamo The V tem primeru opozorimo na vrednost The V tem primeru odstranimo querySelector ()
metoda in njena barva se spremeni v rdečo.
var firstDiv = document.querySelector ('div'); firstDiv.style.color = 'rdeča';
Interaktivna predstavitev
querySelector ()
v naslednji interaktivni demo. Preprosto vtipkajte izbirnik, ki ustreza tistim, ki jih najdete v modrih poljih (npr. #three
) in kliknite gumb Izberi. Upoštevajte, če vnesete .blok
, samo na prvi stopnji bo izbran.2.
querySelectorAll ()
querySelector ()
ki vrne samo prvi primerek vseh ujemajočih se elementov, querySelectorAll ()
vrne vse elemente, ki se ujemajo z izbranim izbirnikom CSS.NodeList
objekt, ki bo prazen objekt, če ne najdemo ustreznih elementov.Sintaksa
var eles = document.querySelectorAll (izbirnik);
eles
- A NodeList
predmet z vsemi ujemajočimi se elementi kot vrednostmi lastnosti. Če ni najdenih zadetkov, je objekt prazen.izbirnik
- enega ali več CSS selektorjev, kot npr "#fooId"
, ".fooClassName"
, ".class1.class2"
, ali ".class1, .class2"
Primer kode
querySelectorAll ()
, in so obarvani modro.
var odstavki = document.querySelectorAll ('p'); za (var p odstavkov) p.style.color = 'blue';
3.
addEventListener ()
foo ()
je funkcija po meri, jo lahko registrirate kot poslušalec dogodka klikanja (pokličite ga, ko kliknete element gumba) na tri načine:
var btn = document.querySelector ('gumb'); btn.onclick = foo;
var btn = document.querySelector ('gumb'); btn.addEventListener ('klik', foo);
addEventListener ()
(tretja rešitev) nekaj prednosti; to je najnovejši standard - ki omogoča dodelitev več kot ene funkcije kot poslušalce dogodkov enemu dogodku - in ima uporaben nabor možnosti.Sintaksa
ele.addEventListener (evt, poslušalec, [možnosti]);
ele
- Element HTML, ki ga bo poslušalec dogodka poslušal.evt
- Ciljni dogodek.poslušalca
- Značilno je funkcija JavaScript.opcije
- (neobvezno) Objekt z nizom boolskih lastnosti (našteto spodaj).Opcije Kaj se zgodi, ko je nastavljeno na prav
?zajem
ele.addEventListener (evt, poslušalec, res)
ele.addEventListener (evt, poslušalec, zajem: res);
enkrat
pasivno
Primer kode
foo
, do Oznaka HTML.
var btn = document.querySelector ('gumb'); btn.addEventListener ('klik', foo); funkcija foo () alert ('hello');
Interaktivna predstavitev
foo ()
funkcijo po meri kot poslušalca dogodka na katerega koli od naslednjih treh dogodkov: vnos
, kliknite
ali miško
in sprožite izbrani dogodek v spodnjem vnosnem polju tako, da ga premaknete, kliknete ali vnesete.4.
removeEventListener ()
removeEventListener ()
metodo odvzame poslušalca dogodka predhodno dodane s addEventListener ()
metodo od dogodka, ki ga poslušate.Sintaksa
ele.removeEventListener (evt, poslušalec, [možnosti]);
addEventListener ()
(razen za. \ t enkrat
možnost, ki je izključena). Možnosti so uporabljene, da so zelo specifične glede identifikacije poslušalca, ki ga želite ločiti.Primer kode
addEventListener ()
, tukaj odstranimo poslušalca dogodka klikanja foo
Iz element.
btn.removeEventListener ('klik', foo);
5.
createElement ()
createElement ()
metodo ustvari nov element HTML uporabljati ime oznake HTML ustvariti, na primer 'p'
ali "div"
.AppendChild ()
(glej v nadaljevanju te objave).Sintaksa
document.createElement (tagName);
tagName
- Ime oznake HTML, ki jo želite ustvariti. Primer kode
var pEle = document.createElement ('p')
6.
appendChild ()
appendChild ()
metodo doda element kot zadnji otrok v element HTML, ki prikliče to metodo.Sintaksa
ele.appendChild (childEle)
ele
- Element HTML, na katerega childEle
je dodan kot njegov zadnji otrok.childEle
- Element HTML dodan kot zadnji otrok uporabnika ele
.Primer kode
element je kot otrok
appendChild ()
in prej omenjeno createElement ()
metod.
var div = document.querySelector ('div'); var strong = document.createElement ('močan'); strong.textContent = 'Pozdravljeni'; div.appendChild (močan);
Interaktivna predstavitev
#a
do #r
so podrejeni elementi # staršev-ena
, # staršev-dva
, in # staršev-tri
Izbirniki ID.appendChild ()
metoda deluje v poljih za vnos vnesete eno ime staršev in enega otroka. Izberete lahko tudi otroke, ki pripadajo drugemu staršu.7.
removeChild ()
removeChild ()
metodo odstrani podani podrejeni element iz elementa HTML, ki kliče to metodo.Sintaksa
ele.removeChild (otrokEle)
ele
- Nadrejeni element childEle
.childEle
- Otroški element ele
.Primer kode
element, ki smo ga dodali kot otrok
appendChild ()
metodo. div.removeChild (močan);
8.
replaceChild ()
replaceChild ()
metodo nadomesti podrejeni element z drugim pripadajo nadrejenemu elementu, ki kliče to metodo.Sintaksa
ele.replaceChild (newChildEle, oldChileEle)
ele
- Nadrejeni element, ki ga je treba zamenjati za otroke.newChildEle
- Otroški element ele
ki bo nadomestil oldChildEle
.oldChildEle
- Otroški element ele
, ki bo zamenjana z newChildEle
.Primer kode
pripadajo. \ t
oznaka.
var em = document.createElement ('em'); var strong = document.querySelector ('močan'); var div = document.querySelector ('div'); em.textContent = 'hi'; div.replaceChild (em, močan);
9.
cloneNode ()
cloneNode ()
metodo.Sintaksa
var dupeEle = ele.cloneNode ([globoko])
dupeEle
- Kopija ele
element.ele
- Element HTML, ki ga želite kopirati.globoko
- (neobvezno) Booleova vrednost. Če je nastavljeno na prav
, dupeEle
bodo imeli vse podrejene elemente ele
je, če je nastavljeno na false
brez svojih otrok bo kloniran.Primer kode
element z
cloneNode ()
, potem ga dodamo appendChild ()
metodo. elemente, oba z
zdravo
kot vsebina.
var strong = document.querySelector ('močan'); var copy = strong.cloneNode (true); var div = document.querySelector ('div'); div.appendChild (kopija);
10.
insertBefore ()
insertBefore ()
metodo doda podrejeni element pred drugim podrejenim elementom. Metodo kliče nadrejeni element.nič
na njegovo mesto se doda podrejeni element, ki ga je treba vstaviti kot zadnji otrok staršev (podoben appendChild ()
).Sintaksa
ele.insertBefore (newEle, refEle);
ele
- Nadrejeni element.newEle
- Vstavi se nov element HTML.refEle
- Otroški element ele
pred tem newEle
bo vstavljen.Primer kode
element z nekaj besedila znotraj in ga dodajte prej
element znotraj. \ t
var em = document.createElement ('em'); var strong = document.querySelector ('močan'); var div = document.querySelector ('div'); em.textContent = 'hi'; div.insertBefore (em, strong);
Interaktivna predstavitev
appendChild ()
metodo. Tukaj morate vnesti samo selektorje id za dva podrejena elementa (iz #a
do #r
) v vnosna polja in vidite, kako insertBefore ()
metoda premakne prvi podani otrok prej drugi.11.
createDocumentFragment ()
createDocumentFragment ()
Metoda morda ni tako dobro znana kot drugi na tem seznamu, vendar je pomembna, še posebej, če želite vstavite več elementov v velikem obsegu, dodajanje več vrstic v tabelo.Fragment dokumenta
predmet, ki je v bistvu vozlišče DOM, ki ni del drevesa DOM. To je kot vmesni pomnilnik, kjer lahko dodajamo in shranjujemo druge elemente (npr. Več vrstic), preden jih dodamo v želeno vozlišče v drevesu DOM (npr. V tabelo).Fragment dokumenta
predmet ne povzroča sprememb v postavitvi, tako da mu lahko dodate toliko elementov, kot jih želite, preden jih posredujete drevesu DOM, kar povzroči spremembo postavitve le na tej točki.Sintaksa
document.createDocumentFragment ()
Primer kode
createElement ()
in jih dodajte v Fragment dokumenta
predmet, končno dodajte ta fragment dokumenta v HTML uporabljati
appendChild ()
metodo.
var table = document.querySelector ("tabela"); 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
lastnine storiti enako, vendar getComputedStyle ()
je bil narejen le za ta namen vrne izračunane vrednosti samo za branje vseh lastnosti CSS določenega elementa HTML.Sintaksa
var style = getComputedStyle (ele, [pseudoEle])
slog
- A Izjava CSSStyle
predmet vrne metoda. Vsebuje vse lastnosti CSS in njihove vrednosti ele
element.ele
- Element HTML, iz katerega so pridobljene vrednosti lastnosti CSS.pseudoEle
- (neobvezno) Niz, ki predstavlja psevdoelement (na primer, ": po"
). Če je to omenjeno, potem so lastnosti CSS podanega psevdoelementa povezane z ele
bo vrnjeno.Primer kode
premer
vrednost a getComputedStyle ()
metodo.
var style = getComputedStyle (document.querySelector ('div')); opozorilo (style.width);
13.
setAttribute ()
setAttribute ()
metodo doda nov atribut do elementa HTML ali posodobi vrednost atributa, ki že obstaja.Sintaksa
ele.setAttribute (ime, vrednost);
ele
- Element HTML, ki mu je dodan atribut ali katerega atribut je posodobljen.ime
- Ime atributa.vrednost
- Vrednost atributa.Primer kode
vsebinsko primerna
atribut a setAttribute ()
metodo, ki bo spremenila njeno vsebino. var div = document.querySelector ('div'); div.setAttribute ("contenteditable", ")
14.
getAttribute ()
getAttribute ()
metodo vrne vrednost podanega atributa pripadajo določenemu elementu HTML.Sintaksa
ele.getAttribute (ime);
ele
- Element HTML, katerega atribut se zahteva.ime
- Ime atributa.Primer kode
vsebinsko primerna
atribut, ki pripada getAttribute ()
metodo. var div = document.querySelector ('div'); opozorilo (div.getAttribute ('contenteditable'))
15.
removeAttribute ()
removeAttribute ()
metodo odstrani določen atribut določenega elementa HTML.Sintaksa
ele.removeAttribute (ime);
ele
- Element HTML, katerega atribut je treba odstraniti.ime
- Ime atributa.Primer kode
vsebinsko primerna
atribut iz var div = document.querySelector ('div'); div.removeAttribute ('contenteditable');