15 JavaScript metodes DOM manipulācijai tīmekļa izstrādātājiem
Kā tīmekļa izstrādātājs jums bieži ir jārīkojas ar DOM, objekta modelis, ko pārlūkprogrammas izmanto norādiet loģisko struktūru tīmekļa lapām un balstoties uz šo struktūru padarīt HTML elementus ekrānā.
HTML definē noklusējuma DOM struktūra. Tomēr daudzos gadījumos jūs varat manipulēt ar JavaScript, parasti, lai pievienot papildu funkcijas uz vietni.
Šajā ziņojumā jūs atradīsiet sarakstu ar 15 pamata JavaScript metodes to atbalsts DOM manipulācijām. Iespējams, ka šīs metodes bieži izmantojat savā kodā, un jūs arī iesakņosiet mūsu JavaScript konsultācijās.
1. querySelector ()
The querySelector ()
metodi atgriež pirmo elementu, kas atbilst vienam vai vairākiem CSS selektoriem. Ja neatbilstība nav atrasta, tā atgriežas null
.
Pirms tam querySelector ()
tika ieviests, izstrādātāji plaši izmantoja getElementById ()
metode, kas ielādē elementu ar norādīto ID
vērtību.
Lai gan getElementById ()
joprojām ir noderīga metode, bet ar jaunāko querySelector ()
un querySelectorAll ()
metodes, kuras mēs varam brīvi mērķa elementi, pamatojoties uz jebkuru CSS selektoru, tādējādi mums ir lielāka elastība.
Sintakse
var ele = document.querySelector (selektors);
ele
- Pirmais atbilstības elements vainull
(ja neviens elements neatbilst atlasītājiem)selektoru
- viens vai vairāki CSS selektori, piemēram,"#fooId"
,".fooClassName"
,".class1.class2"
, vai".class1, .class2"
Kods Piemērs
Šajā piemērā pirmais 1. punktā 2. punkts 3. punkts Pārbaudiet Atšķirībā no Atbilstības elementi tiek atgriezti kā a Tālāk redzamais piemērs izmanto to pašu HTML kā iepriekšējo. Tomēr šajā piemērā ir atlasīti visi punkti 1. punktā 2. punkts 3. punkts Notikumi atsaukties uz to, kas notiek ar HTML elementu, piemēram, klikšķināšana, fokusēšana vai ielāde, uz kuru mēs varam reaģēt ar JavaScript. Mēs varam piešķirt JS funkcijas klausieties par šiem notikumiem elementos un darīt kaut ko, kad notikums notika. Ir trīs veidi, kā jūs varat piešķirt funkciju noteiktam notikumam. Ja Metode Pārtrauc notikumu burbuļošanu, t. I., Neļauj jebkura notikuma klausītājam izsaukt to pašu notikuma veidu elementa priekštečos. Lai izmantotu šo funkciju, varat izmantot 2 sintakses: Klausītājs tiek saukts tikai pirmo reizi, kad notikums notiek, tad tas tiek automātiski atdalīts no notikuma, un tas vairs netiks aktivizēts.. Notikuma noklusējuma darbību nevar apturēt ar metodi PrevDefault (). Šajā piemērā mēs pievienojam klikšķa notikuma klausītāju Piešķirt The Izmanto to pašu sintaksi kā iepriekš Ievērojot koda piemēru, kuru mēs izmantojām The Vēlāk šo elementu varat pievienot tīmekļa lapai, izmantojot atšķirīgu metodes DOM ievietošanai, piemēram, Ar šādu piemēru varat izveidot jaunu rindkopas elementu: The Ievietojams bērns var būt vai nu a jaunizveidotais elements, vai jau esošu. Pēdējā gadījumā tas tiks pārvietots no iepriekšējā stāvokļa uz pēdējā bērna stāvokli. Šajā piemērā mēs ievietojam a Nākamajā interaktīvajā demonstrācijā vēstules no Pārbaudiet, kā The Šajā piemērā mēs noņemam The Šajā piemērā bērna elements Kad jums ir jāizveido jauns elements, kam jābūt tas pats kā jau esošs elements Web lapā jūs varat vienkārši izveidojiet jau esoša elementa kopiju izmantojot Šajā piemērā mēs izveidojam kopiju Rezultātā, The Ja norādītais bērna elements nepastāv vai jūs skaidri iziet Šajā piemērā mēs izveidojam jaunu Šī interaktīvā demonstrācija ir līdzīga mūsu iepriekšējai demonstrācijai The Tā rada a Kāpēc mēs vienkārši nepievienojam elementus tieši DOM kokam? Tā kā DOM ievieto izraisa izkārtojuma izmaiņas, un tas ir dārgs pārlūka process jo vairāki secīgi elementu ievietojumi radīs vairāk izkārtojumu. No otras puses, elementu pievienošana a Šajā piemērā mēs izveidojam vairākas tabulas rindas un šūnas ar Rezultātā tabulas iekšpusē tiks ievietotas piecas rindas - katra no tām satur vienu šūnu ar numuru no 1 līdz 5 kā saturu.. Dažreiz vēlaties pārbaudiet CSS īpašuma vērtības pirms izmaiņu veikšanas. Varat izmantot Šajā piemērā mēs saņemam un brīdinām par aprēķināto The Šajā piemērā mēs pievienojam The Šajā piemērā mēs brīdinām par The Šajā piemērā mēs noņemam querySelector ()
metode un tās krāsa tiek mainīta uz sarkanu.
var firstDiv = document.querySelector ('div'); firstDiv.style.color = 'red';
Interaktīva demonstrācija
querySelector ()
metodi nākamajā interaktīvajā demonstrācijā. Vienkārši ievadiet selektoru, kas atbilst tiem, kurus var atrast zilās kastes iekšpusē (piem.,. #three
) un noklikšķiniet uz pogas Atlasīt. Ņemiet vērā, ka, ievadot .bloķēt
, tikai tā pirmā instancē tiks izvēlēts.2.
querySelectorAll ()
querySelector ()
kas atgriež tikai pirmo atbilstošo elementu, querySelectorAll ()
atgriež visus elementus, kas atbilst norādītajam CSS selektoram.NodeList
objekts, kas būs tukšs objekts, ja netiks atrasts atbilstošs elements.Sintakse
var eles = document.querySelectorAll (selektors);
eles
- A NodeList
objekts ar visiem atbilstošajiem elementiem kā īpašuma vērtībām. Objekts ir tukšs, ja nav atrastas atbilstības.selektoru
- viens vai vairāki CSS selektori, piemēram, "#fooId"
, ".fooClassName"
, ".class1.class2"
, vai ".class1, .class2"
Kods Piemērs
querySelectorAll ()
, un ir zilā krāsā.
var pastraipas = document.querySelectorAll ('p'); par (rindkopu var p) p.style.color = 'blue';
3.
addEventListener ()
foo ()
ir pielāgota funkcija, jūs varat to reģistrēt kā klikšķa notikuma klausītājs (izsauciet to, kad pogas elements ir noklikšķināts) trīs veidos:
var btn = document.querySelector ('poga'); btn.onclick = foo;
var btn = document.querySelector ('poga'); btn.addEventListener ('klikšķi', foo);
addEventListener ()
(trešais risinājums) daži plusi; tas ir jaunākais standarts - ļaujot vienam notikumam piešķirt vairāk nekā vienas funkcijas kā notikuma klausītāju funkcijas - un tam ir noderīgs iespēju kopums.Sintakse
ele.addEventListener (evt, klausītājs, [iespējas]);
ele
- HTML elements, ko klausītājs klausīsies.evt
- Mērķtiecīgs pasākums.klausītājs
- Parasti JavaScript funkcija.iespējas
- (pēc izvēles) Objekts ar būla rekvizītu kopumu (uzskaitīts zemāk).Iespējas Kas notiek, kad tā ir iestatīta taisnība
?sagūstīt
ele.addEventListener (evt, klausītājs, patiess)
ele.addEventListener (evt, klausītājs, capture: true);
vienreiz
pasīva
Kods Piemērs
foo
, uz HTML tag.
var btn = document.querySelector ('poga'); btn.addEventListener ('klikšķi', foo); funkcija foo () alarm ('hello');
Interaktīva demonstrācija
foo ()
pielāgota funkcija kā notikumu klausītājs jebkurā no šiem trim notikumiem: ievadi
, klikšķis
vai mouseover
un aktivizējiet izvēlēto notikumu apakšējā ievades laukā, pievelkot, noklikšķinot vai ierakstot tajā.4.
removeEventListener ()
removeEventListener ()
metodi atdala notikuma klausītāju iepriekš pievienots addEventListener ()
metodi no notikuma, ko tas klausās.Sintakse
ele.removeEventListener (evt, klausītājs, [opcijas]);
addEventListener ()
metode (izņemot vienreiz
opcija, kas ir izslēgta). Iespējas ir ļoti specifiskas, lai identificētu klausītāju, kas ir atdalāms.Kods Piemērs
addEventListener ()
, šeit mēs noņemam klikšķa notikuma klausītāju foo
no elementu.
btn.removeEventListener ('klikšķi', foo);
5.
createElement ()
createElement ()
metodi izveido jaunu HTML elementu izmantojot HTML taga nosaukums piemēram, 'p'
vai 'div'
.PievienotChild ()
(skatiet vēlāk šajā ziņojumā).Sintakse
document.createElement (tagName);
tagName
- HTML tagu, kuru vēlaties izveidot. Kods Piemērs
var pEle = document.createElement ('p')
6.
pievienojietChild ()
pievienojietChild ()
metodi pievieno elementu kā pēdējo bērnu HTML elementam, kas izmanto šo metodi.Sintakse
ele.appendChild (childEle)
ele
- HTML elements, uz kuru bērns
tiek pievienots kā pēdējais bērns.bērns
- HTML elements, kas pievienots kā pēdējais bērns ele
.Kods Piemērs
elements ir kā bērns
pievienojietChild ()
un iepriekšminēto createElement ()
metodes.
var div = document.querySelector ('div'); var strong = document.createElement (“spēcīgs”); strong.textContent = 'Sveiki'; div.appendChild (spēcīgs);
Interaktīva demonstrācija
#a
uz #r
ir bērna elementi # vecākais-viens
, # vecākais-divi
, un # vecāks-trīs
ID selektori.pievienojietChild ()
metode darbojas zemāk esošajos ievades laukos ierakstiet vienu vecāku un vienu bērnu atlasītāja vārdu. Varat izvēlēties arī citus vecākus piederošus bērnus.7.
removeChild ()
removeChild ()
metodi noņem noteiktu bērnu elementu no HTML elementa, kas sauc šo metodi.Sintakse
ele.removeChild (childEle)
ele
- Vecākais elements bērns
.bērns
- Bērna elements ele
.Kods Piemērs
elements, ko mēs pievienojām bērnam
pievienojietChild ()
metodi. div.removeChild (spēcīgs);
8.
aizstāt bērnu ()
aizstāt bērnu ()
metodi aizstāj bērnu elementu ar citu pieder vecākajam elementam, kas sauc šo metodi.Sintakse
ele.replaceChild (newChildEle, oldChileEle)
ele
- Vecāku elements, kuru bērni jāaizstāj.newChildEle
- Bērna elements ele
kas aizstās oldChildEle
.oldChildEle
- Bērna elements ele
, kas tiks aizstāts ar newChildEle
.Kods Piemērs
pieder
tag.
var em = document.createElement ('em'); var strong = document.querySelector ('spēcīgs'); var div = document.querySelector ('div'); em.textContent = 'hi'; div.replaceChild (em, spēcīgs);
9.
cloneNode ()
cloneNode ()
metodi.Sintakse
var dupeEle = ele.cloneNode ([dziļi])
dupeEle
- Kopija ele
elementu.ele
- Kopējamais HTML elements.dziļi
- (pēc izvēles) Būla vērtība. Ja tas ir iestatīts uz taisnība
, dupeEle
būs visi bērna elementi ele
ir, ja tas ir iestatīts nepatiesa
tas tiks klonēts bez tā bērniem.Kods Piemērs
elements ar
cloneNode ()
, tad mēs to pievienojam pievienojietChild ()
metodi. elementus, gan ar
Sveiki
virkne kā saturs.
var strong = document.querySelector ('spēcīgs'); var copy = strong.cloneNode (taisnība); var div = document.querySelector ('div'); div.appendChild (kopija);
10.
pirms ()
pirms ()
metodi pievieno noteiktu bērna elementu pirms cita bērna elementa. Metodi sauc par vecāku elementu.null
tā vietā ievieto ievietojamo bērnu elementu kā vecākais bērns (līdzīgs pievienojietChild ()
).Sintakse
ele.insertBefore (newEle, refEle);
ele
- Vecāku elements.newEle
- Ievietojams jauns HTML elements.refEle
- Bērna elements ele
pirms kura newEle
tiks ievietots.Kods Piemērs
elementu, un pievienojiet to iepriekš the
elements iekšpusē
var em = document.createElement ('em'); var strong = document.querySelector ('spēcīgs'); var div = document.querySelector ('div'); em.textContent = 'hi'; div.insertBet pirms (em, spēcīgs);
Interaktīva demonstrācija
pievienojietChild ()
metodi. Šeit jums tikai jāievada divu bērnu elementu ID izvēles #a
uz #r
) ievades lodziņos, un jūs varat redzēt, kā pirms ()
metode pārvieto pirmo norādīto bērnu iepriekš otrais.11.
createDocumentFragment ()
createDocumentFragment ()
metode var nebūt tik labi pazīstama kā citi šajā sarakstā, tomēr ir svarīga, jo īpaši, ja vēlaties ievietojiet vairākus elementus vairumā, piemēram, vairāku rindu pievienošana tabulai.DocumentFragment
objektu, kas būtībā ir DOM mezgls, kas nav DOM koka daļa. Tas ir kā buferis, kur mēs vispirms varam pievienot un saglabāt citus elementus (piemēram, vairākas rindas), pirms pievienojat tos vēlamajam mezglam DOM kokā (piem., Uz tabulu).DocumentFragment
objektu neizraisa izkārtojuma izmaiņas, tāpēc jūs varat pievienot tik daudz elementu, cik vēlaties, pirms tos nododat DOM kokam, izraisot izkārtojuma maiņu tikai šajā brīdī.Sintakse
document.createDocumentFragment ()
Kods Piemērs
createElement ()
pēc tam pievienojiet tos a DocumentFragment
beidzot pievienojiet šo dokumenta fragmentu HTML izmantojot
pievienojietChild ()
metodi.
var table = document.querySelector ("tabula"); var df = document.createDocumentFragment (); par (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
īpašums darīt to pašu, tomēr getComputedStyle ()
metode ir izstrādāta tikai šim nolūkam atgriež tikai lasāmās aprēķinātās vērtības no visiem norādītā HTML elementa CSS rekvizītiem.Sintakse
var style = getComputedStyle (ele, [pseudoEle])
stils
- A CSSStyleDeclaration
objekts ir atgriezies ar metodi. Tajā ir visas CSS īpašības un to vērtības ele
elementu.ele
- HTML elements, kura CSS īpašību vērtības tiek ielādētas.pseudoEle
- (pēc izvēles) virkne, kas attēlo pseidoelementu (piemēram,, ": pēc"
). Ja tas ir minēts, tad norādītā pseidoelementa CSS īpašības ele
tiks atgriezta.Kods Piemērs
platums
vērtība a getComputedStyle ()
metodi.
var style = getComputedStyle (document.querySelector ('div')); brīdinājums (style.width);
13.
setAttribute ()
setAttribute ()
metodi pievieno jaunu atribūtu HTML elementam vai atjaunina vērtību atribūtu, kas jau pastāv.Sintakse
ele.setAttribute (vārds, vērtība);
ele
- HTML elements, kuram pievienots atribūts vai kura atribūts ir atjaunināts.nosaukums
- Atribūta nosaukums.vērtību
- Atribūta vērtība.Kods Piemērs
apmierinošs
atribūts a setAttribute ()
metode, kas pārveidos tā saturu. var div = document.querySelector ('div'); div.setAttribute ('contenteditable', ")
14.
getAttribute ()
getAttribute ()
metodi atgriež noteiktā atribūta vērtību pieder konkrētam HTML elementam.Sintakse
ele.getAttribute (vārds);
ele
- HTML elements, kura atribūts tiek pieprasīts.nosaukums
- Atribūta nosaukums.Kods Piemērs
apmierinošs
atribūts, kas pieder getAttribute ()
metodi. var div = document.querySelector ('div'); brīdinājums (div.getAttribute ('contenteditable'))
15.
removeAttribute ()
removeAttribute ()
metodi noņem konkrēto atribūtu konkrēta HTML elementa.Sintakse
ele.removeAttribute (vārds);
ele
- Atribūtu HTML elements.nosaukums
- Atribūta nosaukums.Kods Piemērs
apmierinošs
atribūts no var div = document.querySelector ('div'); div.removeAttribute (“satura apmierinošs”);