15 JavaScript-meetodid veebiarendajate DOM-i manipuleerimiseks
Veebiarendajana peate tihtipeale manipuleerima DOM, objekti mudel, mida brauserid kasutavad täpsustage loogiline struktuur veebilehtede ja selle struktuuri alusel muuta HTML-elemendid ekraanil.
HTML määratleb vaikimisi DOM struktuur. Paljudel juhtudel võite soovida seda JavaScriptiga manipuleerida, tavaliselt selleks, et lisada täiendavaid funktsioone saidile.
Selles postituses leiate nimekirjast 15 põhilist JavaScript-meetodit seda abi DOMi manipuleerimisele. Tõenäoliselt kasutaksite neid meetodeid sageli oma koodis ja sattuksite need ka meie JavaScript-õpetustesse.
1. querySelector ()
The querySelector ()
meetod tagastab esimese elemendi, mis sobib ühe või mitme CSS-i valijaga. Kui vaste ei leita, naaseb see null
.
Enne seda querySelector ()
kasutusele, kasutasid arendajad laialdaselt getElementById ()
meetodit tõmbab määratud elemendiga elemendi id
väärtus.
Kuigi getElementById ()
on ikka veel kasulik meetod, kuid uuem querySelector ()
ja querySelectorAll ()
me oleme vabad mis tahes CSS-selektoril põhinevad sihtelemendid, seega on meil rohkem paindlikkust.
Süntaksi
var ele = document.querySelector (valija);
ele
- Esimene sobitamise element võinull
(kui ükski element ei sobi valijatega)valija
- üks või mitu CSS-selektorit, näiteks"#fooId"
,".fooClassName"
,".class1.class2"
, või".class1, .class2"
Koodi näide
Selles näites on esimene lõikes 1 lõik 2 lõik 3 Testige Erinevalt Sobivad elemendid tagastatakse kui a Järgnev näide kasutab sama HTML-i kui eelmine. Selles näites valitakse aga kõik lõiked koos lõikes 1 lõik 2 lõik 3 Sündmused viidake sellele, mis juhtub HTML-elemendiga, nagu klõpsamine, fokuseerimine või laadimine, millele me JavaScriptiga reageerime. Saame määrata JS-i funktsioonid kuula nende sündmuste kohta elementides ja tehke midagi sündmuse toimumise ajal. Teil on kolm võimalust määrata teatud sündmusele funktsioon. Kui Meetod Peatab sündmuse muljumise, st takistab iga sündmuse kuulaja kutsumist sama sündmuse tüübi jaoks elementide esivanemates. Selle funktsiooni kasutamiseks saate kasutada kahte süntaksit: Kuulajat nimetatakse ainult siis, kui sündmus esmakordselt toimub, siis see automaatselt sündmusest eemaldatakse ja seda enam ei käivitata. Sündmuse vaiketoimingut ei saa peatada meetodiga PrevDefault (). Selles näites lisame kutsutud kliki sündmuse kuulaja Määrake The Kasutab sama süntaksit nagu ülalnimetatud Järgides koodi näiteid, mida me kasutasime The Hiljem saate selle elemendi veebilehe juurde lisada, kasutades teist meetodid DOM sisestamiseks, nagu näiteks Järgmise näite abil saate luua uue lõikeelemendi: The Sisestatav laps võib olla kas a äsja loodud element, või juba olemasolev. Viimasel juhul viiakse see oma eelmisest positsioonist viimase lapse positsioonile. Selles näites sisestame a Järgmises interaktiivses demo kirjas Vaadake, kuidas The Selles näites eemaldame me The Selles näites on lapse element Kui peate looma uue elemendi, mis peab olema sama kui juba olemasolev element veebisaidil saate lihtsalt luua juba olemasoleva elemendi koopia kasutades Selles näites loome koopia koopiale Tulemusena, The Kui viidatud lapselement ei ole olemas või kui te liigute selgesõnaliselt Selles näites loome uue See interaktiivne demo töötab sarnaselt meie eelmisele demole The See loob a Miks me lihtsalt ei lisa elemente otse DOMi puule? Sest DOM sisestamine põhjustab paigutuse muutusi, ja see on kulukas brauseri protsess kuna mitmed järgnevad elemendi sisestused põhjustavad rohkem paigutuse muutusi. Teisest küljest lisage elemendid a-le Selles näites loome koos tabeliga mitu tabeli rida ja lahtrit Selle tulemusena lisatakse tabelisse viis rida - igaüks neist sisaldab ühte lahtrit, mille number on vahemikus 1-5.. Mõnikord soovite kontrollige CSS-i omaduste väärtusi enne muudatuste tegemist. Võite kasutada Selles näites saame ja hoiatame arvutatud The Selles näites lisame The Selles näites hoiatame selle väärtust The Selles näites eemaldame me querySelector ()
meetod ja selle värvus muutub punaseks.
var firstDiv = document.querySelector ('div'); firstDiv.style.color = 'punane';
Interaktiivne demo
querySelector ()
meetodit järgmises interaktiivses demos. Sisestage lihtsalt valija, mis sobib siniste kastide sees olevate valijatega (nt. #three
) ja klõpsake nuppu Vali. Pange tähele, et kui kirjutad .blokeeri
, ainult selle esimeses astmes valitakse.2.
querySelectorAll ()
querySelector ()
mis tagastab ainult kõigi sobivate elementide esimese astme, querySelectorAll ()
tagastab kõik elemendid, mis vastavad määratud CSS-valijale.NodeList
objekt, mis on tühi objekt, kui ühtegi sobivat elementi ei leita.Süntaksi
var eles = document.querySelectorAll (valija);
eles
- A NodeList
objekt, mille kõik sobivad elemendid on vara väärtused. Objekt on tühi, kui vasteid ei leitud.valija
- üks või mitu CSS-selektorit, näiteks "#fooId"
, ".fooClassName"
, ".class1.class2"
, või ".class1, .class2"
Koodi näide
querySelectorAll ()
, ja on sinine.
var cuts = document.querySelectorAll ('p'); (punktide var p kohta) p.style.color = 'blue';
3.
addEventListener ()
foo ()
on kohandatud funktsioon, saate selle registreerida klõpsuürituse kuulajana (nimetage seda nupu elemendi klõpsamisel) kolmel viisil:
var btn = document.querySelector ('nupp'); btn.onclick = foo;
var btn = document.querySelector ('nupp'); btn.addEventListener ('kliki', foo);
addEventListener ()
(kolmas lahendus) mõned plussid; see on uusim standard - võimaldab ühe ürituse puhul rohkem kui ühe funktsiooni määramist ürituse kuulajatena - ja see sisaldab kasulikku valikuvõimalust.Süntaksi
ele.addEventListener (evt, kuulaja, [valikud]);
ele
- HTML-element, mida ürituse kuulaja kuulab.evt
- Sihtmärk.kuulaja
- Tavaliselt on JavaScript-funktsioon.võimalusi
- (valikuline) Objekt, millel on loogiliste omaduste kogum (loetletud allpool).Valikud Mis juhtub, kui see on seatud tõsi
?püüdmine
ele.addEventListener (evt, kuulaja, tõsi)
ele.addEventListener (evt, kuulaja, capture: true);
üks kord
passiivne
Koodi näide
foo
, Euroopa HTML-silt.
var btn = document.querySelector ('nupp'); btn.addEventListener ('kliki', foo); funktsioon foo () alarm ('hello');
Interaktiivne demo
foo ()
kohandatud funktsioon sündmuste kuulajana mis tahes kolmest järgmistest sündmustest: sisend
, klõpsa
või mouseover
& käivitab valitud sündmuse alt sisendväljal, libistades, klõpsates või kirjutades selles.4.
removeEventListener ()
removeEventListener ()
meetod eemaldab sündmuse kuulaja varem lisatud addEventListener ()
meetod üritusest, mida ta kuulab.Süntaksi
ele.removeEventListener (evt, kuulaja, [valikud]);
addEventListener ()
meetod (va üks kord
välistatud valik). Valikuid kasutatakse harva kuulatava kuulaja tuvastamiseks.Koodi näide
addEventListener ()
, siin eemaldame klikitud sündmuse kuulaja foo
alates element.
btn.removeEventListener ('kliki', foo);
5.
createElement ()
createElement ()
meetod loob uue HTML-elemendi kasutades HTML-koodi nimi luuakse näiteks 'p'
või "div"
.LisaChild ()
(vt hiljem seda postitust).Süntaksi
document.createElement (tagName);
tagName
- HTML-märgise nimi, mida soovite luua. Koodi näide
var pEle = document.createElement ('p')
6.
lisageChild ()
lisageChild ()
meetod lisab viimase lapse elemendi HTML-elementi, mis seda meetodit kasutab.Süntaksi
ele.appendChild (childEle)
ele
- HTML-element, millele lapsele
lisatakse viimane laps.lapsele
- HTML-i element, mis lisati viimase lapse hulka ele
.Koodi näide
element on a
lisageChild ()
ja ülalnimetatud createElement ()
meetodid.
var div = document.querySelector ('div'); var strong = document.createElement ('tugev'); strong.textContent = 'Tere'; div.appendChild (tugev);
Interaktiivne demo
#a
kuni #r
on lapse elemendid # vanem-üks
, # vanem-kaks
, ja # vanem-kolm
id-valijad.lisageChild ()
meetod töötab ühe vanema ja ühe lapse valija nime sisestamine allpool olevatesse väljadesse. Võite valida ka teise vanema juurde kuuluvaid lapsi.7.
eemaldaLaste ()
eemaldaLaste ()
meetod eemaldab määratud lapse elemendi HTML-elemendist, mis seda meetodit nimetab.Süntaksi
ele.removeChild (childEle)
ele
- Peamine element lapsele
.lapsele
- Lapse element ele
.Koodi näide
element, mille me lapsena lisasime
lisageChild ()
meetod. div.removeChild (tugev);
8.
asendageLaste ()
asendageLaste ()
meetod asendab lapse elemendi teise kuulub vanemale elemendile, mis nimetab seda meetodit.Süntaksi
ele.replaceChild (uusChildEle, oldChileEle)
ele
- Emaosa, mille lapsed tuleb asendada.newChildEle
- Lapse element ele
see asendab oldChildEle
.oldChildEle
- Lapse element ele
, see asendatakse numbriga newChildEle
.Koodi näide
kuuluvad
silt.
var em = document.createElement ('em'); var strong = document.querySelector ('tugev'); var div = document.querySelector ('div'); em.textContent = 'hi'; div.replaceChild (em, strong);
9.
cloneNode ()
cloneNode ()
meetod.Süntaksi
var dupeEle = ele.cloneNode ([sügav])
dupeEle
- Koopia ele
element.ele
- Kopeeritav HTML-element.sügav
- (valikuline) Boole väärtus. Kui see on seatud tõsi
, dupeEle
on kõik lapse elemendid ele
on, kui see on seatud vale
see kloonitakse ilma tema lasteta.Koodi näide
elemendiga
cloneNode ()
, siis me lisame selle lisageChild ()
meetod. elemendid, mõlemad
Tere
stringi sisu.
var strong = document.querySelector ('tugev'); var copy = strong.cloneNode (true); var div = document.querySelector ('div'); div.appendChild (koopia);
10.
sisesta enne ()
sisesta enne ()
meetod lisab teise lapse elemendi juurde määratud lapse elemendi. Meetodit nimetab vanemelement.null
selle asemel lisatakse lisatav lastelement vanema lapsena (sarnane lisageChild ()
).Süntaksi
ele.insertBefore (newEle, refEle);
ele
- Vanemelement.newEle
- Lisatakse uus HTML-element.refEle
- Lapse element ele
enne mida newEle
sisestatakse.Koodi näide
elemendi sees ja lisage see enne the
element sees
var em = document.createElement ('em'); var strong = document.querySelector ('tugev'); var div = document.querySelector ('div'); em.textContent = 'hi'; div.insertBe enne (em, strong);
Interaktiivne demo
lisageChild ()
meetod. Siin on vaja sisestada ainult kahe lapse elemendi id-valijad (alates #a
kuni #r
) sisendkastidesse ja näete, kuidas sisesta enne ()
meetod liigutab esimese määratud lapse enne teine.11.
createDocumentFragment ()
createDocumentFragment ()
meetod ei pruugi olla sama hästi tuntud kui teised selles nimekirjas, kuid on siiski oluline, eriti kui soovite sisestada mitu elementi lahtiselt, näiteks mitme rea lisamine tabelisse.DocumentFragment
objekti, mis on sisuliselt DOM-sõlme, mis ei kuulu DOM-i puusse. See on nagu puhver, kus saame kõigepealt lisada ja salvestada teisi elemente (nt mitu rida), enne kui lisate need DOM puu soovitud sõlme (nt tabelisse).DocumentFragment
objekti ei põhjusta paigutuse muutmist, et saaksite lisada nii palju elemente, kui soovite, enne kui need DOM-i puule edasi antakse, põhjustades paigutuse muutumise ainult selles punktis.Süntaksi
document.createDocumentFragment ()
Koodi näide
createElement ()
seejärel lisage need a DocumentFragment
lõpuks lisage see dokumendifragment HTML-i kasutades
lisageChild ()
meetod.
var table = document.querySelector ("tabel"); var df = document.createDocumentFragment (); jaoks (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
vara, et teha sama, aga getComputedStyle ()
meetod on tehtud just selleks otstarbeks tagastab ainult lugemiseks arvutatud väärtused määratud HTML-elemendi kõigi CSS-i omaduste kohta.Süntaksi
var style = getComputedStyle (ele, [pseudoEle])
stiili
- A CSSStyleDeklareerimine
meetodi abil tagastatud objekt. See sisaldab kõiki CSS omadusi ja nende väärtusi ele
element.ele
- HTML-element, mille CSS-i omaduste väärtused on laetud.pseudoEle
- (valikuline) String, mis kujutab pseudoelementi (näiteks, ": pärast"
). Kui see on mainitud, siis määratud Pseudo-elemendi CSS-omadused ele
tagastatakse.Koodi näide
laius
väärtus a getComputedStyle ()
meetod.
var style = getComputedStyle (document.querySelector ('div')); hoiatus (style.width);
13.
setAttribute ()
setAttribute ()
meetodit lisab uue atribuudi HTML-elementi või värskendab väärtust atribuudist, mis on juba olemas.Süntaksi
ele.setAttribute (nimi, väärtus);
ele
- HTML-element, millele atribuut on lisatud või mille atribuut on uuendatud.nimi
- Atribuudi nimi.väärtus
- Atribuudi väärtus.Koodi näide
rahulolev
atribuut a setAttribute ()
meetod, mis muudab selle sisu redigeeritavaks. var div = document.querySelector ('div'); div.setAttribute ("sisulise", ")
14.
getAttribute ()
getAttribute ()
meetod tagastab määratud atribuudi väärtuse kuulub teatud HTML-elementi.Süntaksi
ele.getAttribute (nimi);
ele
- Selle atribuudi HTML-element on nõutav.nimi
- Atribuudi nimi.Koodi näide
rahulolev
atribuut, mis kuulub getAttribute ()
meetod. var div = document.querySelector ('div'); hoiatus (div.getAttribute („sisulised”))
15.
removeAttribute ()
removeAttribute ()
meetod eemaldab antud atribuudi konkreetse HTML-elemendi kohta.Süntaksi
ele.removeAttribute (nimi);
ele
- Selle atribuudi HTML-element eemaldatakse.nimi
- Atribuudi nimi.Koodi näide
rahulolev
atribuut var div = document.querySelector ('div'); div.removeAttribute („sisulised”);