15 metode JavaScript pentru manipularea DOM pentru dezvoltatorii web
În calitate de dezvoltator de web, trebuie să manipulați frecvent DOM, modelul de obiect folosit de browsere specificați structura logică a paginilor web și pe baza acestei structuri redați elementele HTML pe ecran.
HTML definește implicită structură DOM. Cu toate acestea, în multe cazuri este posibil să doriți să manipulați acest lucru cu JavaScript, de obicei, pentru a adăugați funcționalități suplimentare la un site.
În acest post, veți găsi o listă de 15 metode JavaScript de bază acea ajutați manipularea DOM. Probabil că veți folosi aceste metode în mod frecvent în codul dvs. și, de asemenea, le veți bate în aceste tutoriale JavaScript.
1. querySelector ()
querySelector ()
metodă returnează primul element care se potrivește cu unul sau mai mulți selectori CSS. Dacă nu se găsește niciun rezultat, acesta se întoarce nul
.
Inainte de querySelector ()
a fost introdus, dezvoltatorii utilizate pe scară largă getElementById ()
metoda care aduce un element cu un anumit id
valoare.
Cu toate ca getElementById ()
este încă o metodă utilă, dar cu cea mai recentă querySelector ()
și querySelectorAll ()
metode de care suntem liberi țintă bazate pe orice selector CSS, astfel avem mai multă flexibilitate.
Sintaxă
var ele = document.querySelector (selector);
ELE
- Primul element de potrivire saunul
(dacă niciun element nu se potrivește cu selectorii)selector
- unul sau mai mulți selectori CSS, cum ar fi"#FooId"
,".FooClassName"
,“.Class1.class2"
, sau".class1, .class2"
Exemplu de cod
În acest exemplu, primul alineatul (1) al doilea paragraf alineatul (3) Testați Spre deosebire de Elementele de potrivire sunt returnate ca a Exemplul de mai jos utilizează același cod HTML ca cel precedent. Cu toate acestea, în acest exemplu, toate paragrafele sunt selectate cu alineatul (1) al doilea paragraf alineatul (3) Evenimente consultați ce se întâmplă cu un element HTML, cum ar fi clicurile, focalizarea sau încărcarea, la care putem reacționa cu JavaScript. Putem desemna funcțiile JS asculta pentru aceste evenimente în elemente și să facă ceva când evenimentul a avut loc. Există trei moduri în care poți atribuiți o funcție unui anumit eveniment. Dacă Metoda Opresc blocarea evenimentului, adică împiedică apelarea oricărui ascultător al evenimentului pentru același tip de eveniment din strămoșii elementului. Pentru a utiliza această funcție, puteți utiliza 2 sintaxe: Listenerul este numit doar prima dată când evenimentul se întâmplă, atunci acesta este detașat automat de eveniment și nu va mai fi declanșat de acesta. Acțiunea prestabilită a evenimentului nu poate fi oprită prin metoda prevenDefault (). În acest exemplu, adăugăm un ascultător al evenimentului de clic numit Atribuiți Folosește aceeași sintaxă ca cea menționată mai sus Urmând exemplul de cod pe care l-am utilizat la Puteți adăuga mai târziu acest element pe pagina web utilizând diferite metodele de inserare DOM, precum Cu următorul exemplu, puteți crea un element de paragraf nou: Copilul care trebuie inserat poate fi fie a element nou nou creat, sau an deja una deja existentă. În acest din urmă caz, acesta va fi mutat din poziția sa anterioară în poziția ultimului copil. În acest exemplu, introducem a În următorul demo interactiv, scrisori de la Verificați cum În acest exemplu, eliminăm În acest exemplu elementul copil Când trebuie să creați un element nou care trebuie să fie la fel ca un element deja existent pe pagina web, puteți pur și simplu creați o copie a elementului deja existent folosind În acest exemplu, vom crea o copie pentru Ca rezultat, Dacă elementul copil referit nu există sau nu treceți în mod explicit În acest exemplu, vom crea un nou Acest demo interactiv funcționează similar cu demonstrația noastră anterioară aparținând Aceasta creează o De ce nu adăugăm elemente direct în arborele DOM? Deoarece inserarea DOM determină modificări ale aspectului, și este un proces de navigare scump deoarece inserțiile mai multor elemente consecutive vor provoca mai multe modificări ale aspectului. Pe de altă parte, adăugarea elementelor la a În acest exemplu, vom crea mai multe rânduri de tabelă și celule cu Ca rezultat, cinci rânduri - fiecare dintre ele conținând o celulă cu un număr de la 1 la 5 ca conținut - vor fi inserate în interiorul tabelului. Uneori vrei să verificați valorile proprietății CSS a unui element înainte de a face orice schimbare. Puteți utiliza funcția În acest exemplu, obținem și avertizăm calculul În acest exemplu, adăugăm În acest exemplu, vom avertiza valoarea În acest exemplu, eliminăm querySelector ()
și culoarea sa este schimbată în roșu.
var primaDiv = document.querySelector ("div"); firstDiv.style.color = 'roșu';
Demo interactivă
querySelector ()
în următoarea demonstrație interactivă. Doar introduceți un selector care se potrivește cu cele pe care le găsiți în cutiile albastre (de ex. #Trei
) și faceți clic pe butonul Selectare. Rețineți că dacă tastați .bloc
, doar prima sa instanță va fi selectat.2.
querySelectorAll ()
querySelector ()
care returnează numai prima instanță a tuturor elementelor de potrivire, querySelectorAll ()
returnează toate elementele care se potrivesc cu selectorul CSS specificat.NodeList
obiect care va fi un obiect gol dacă nu se găsesc elemente potrivite.Sintaxă
var eles = document.querySelectorAll (selector);
Eles
- A NodeList
obiect cu toate elementele de potrivire ca valori de proprietate. Obiectul este gol dacă nu se găsesc potriviri.selector
- unul sau mai mulți selectori CSS, cum ar fi "#FooId"
, ".FooClassName"
, “.Class1.class2"
, sau ".class1, .class2"
Exemplu de cod
querySelectorAll ()
, și sunt colorate în albastru.
var paragrafe = document.querySelectorAll ('p'); pentru (var p de paragrafe) p.style.color = 'albastru';
3.
addEventListener ()
foo ()
este o funcție personalizată, o puteți înregistra ca un ascultător de evenimente clic (apelați-l când se face clic pe elementul de buton) în trei moduri:
var btn = document.querySelector ("butonul"); btn.onclick = foo;
var btn = document.querySelector ("butonul"); btn.addEventListener ("clic", foo);
addEventListener ()
(a treia soluție) unii profesioniști; este ultimul standard - care permite asignarea mai multor funcții ca ascultători de evenimente unui eveniment - și vine cu un set util de opțiuni.Sintaxă
ele.addEventListener (evt, ascultător, [opțiuni]);
ELE
- Elementul HTML de ascultător al evenimentului va fi ascultat.EVT
- Evenimentul vizat.ascultător
- De obicei, o funcție JavaScript.Opțiuni
- (opțional) Un obiect cu un set de proprietăți booleene (enumerate mai jos).Opțiuni Ce se întâmplă când este setat Adevărat
?captură
ele.addEventListener (evt, ascultător, adevărat)
ele.addEventListener (evt, ascultător, capture: true);
o singura data
pasiv
Exemplu de cod
foo
, la Etichetă HTML.
var btn = document.querySelector ("butonul"); btn.addEventListener ( 'clic', foo); funcția foo () alert ('hello');
Demo interactivă
foo ()
funcție personalizată ca ascultător de evenimente la oricare dintre următoarele trei evenimente: intrare
, clic
sau mouse-ul peste
& declanșează evenimentul selectat în câmpul de intrare de jos, făcându-și cursorul, făcând clic sau introducând-l.4.
removeEventListener ()
removeEventListener ()
metodă detașează un ascultător al evenimentului adăugată anterior cu addEventListener ()
metodă de la evenimentul pe care îl ascultă.Sintaxă
ele.removeEventListener (evt, ascultător, [opțiuni]);
addEventListener ()
(cu excepția cazului o singura data
care este exclusă). Opțiunile sunt utilizate pentru a fi foarte specifice cu privire la identificarea ascultătorului care urmează să fie detașat.Exemplu de cod
addEventListener ()
, aici eliminăm ascultătorul evenimentului de clic numit foo
de la element.
btn.removeEventListener ( 'clic', foo);
5.
createElement ()
createElement ()
metodă creează un nou element HTML folosind numele etichetei HTML să fie create, cum ar fi 'P'
sau 'Div'
.AppendChild ()
(vezi mai târziu în acest post).Sintaxă
document.createElement (tagName);
nume eticheta
- Numele etichetei HTML pe care doriți să o creați. Exemplu de cod
var pEle = document.createElement ('p')
6.
appendChild ()
appendChild ()
metodă adaugă un element ca ultimul copil la elementul HTML care invocă această metodă.Sintaxă
ele.appendChild (childEle)
ELE
- Elementul HTML la care childEle
este adăugat ca ultimul copil.childEle
- Elementul HTML adăugat ca ultimul copil din ELE
.Exemplu de cod
elementul este ca și copilul unui
appendChild ()
și cele menționate mai sus createElement ()
metode.
var div = document.querySelector ("div"); var puternic = document.createElement ("puternic"); strong.textContent = 'Bună ziua'; div.appendChild (puternic);
Demo interactivă
#A
la #R
sunt elementele copilului # Părinte-one
, # Părinte-doi
, și # Părinte-trei
id selectori.appendChild ()
metoda funcționează de tastând un nume de părinte și un nume selector de copil în câmpurile de introducere de mai jos. Puteți alege și copiii care aparțin unui alt părinte.7.
removeChild ()
removeChild ()
metodă elimină un element copil specificat de la elementul HTML care apelează această metodă.Sintaxă
ele.removeChild (childEle)
ELE
- Elementul parental al childEle
.childEle
- Elementul copilului din ELE
.Exemplu de cod
element pe care l - am adăugat ca un copil la
appendChild ()
metodă. div.removeChild (puternic);
8.
replaceChild ()
replaceChild ()
metodă înlocuiește un element copil cu altul aparținând elementului părinte care numește această metodă.Sintaxă
ele.replaceChild (nouChildEle, oldChileEle)
ELE
- Elementul parental din care urmează a fi înlocuit copiii.newChildEle
- Elementul copilului din ELE
care va înlocui oldChildEle
.oldChildEle
- Elementul copilului din ELE
, care va fi înlocuit cu newChildEle
.Exemplu de cod
aparținând
etichetă.
var em = document.createElement ('em'); var puternic = document.querySelector ("puternic"); var div = document.querySelector ("div"); em.textContent = 'hi'; div.replaceChild (em, puternic);
9.
cloneNode ()
cloneNode ()
metodă.Sintaxă
var dupeEle = ele.cloneNode ([adâncime])
dupeEle
- Copie a textului ELE
element.ELE
- Elementul HTML care trebuie copiat.adâncime
- (opțional) Valoare booleană. Dacă este setat la Adevărat
, dupeEle
va avea toate elementele copilului ELE
are, dacă este setat fals
acesta va fi clonat fără copii.Exemplu de cod
element cu
cloneNode ()
, apoi îl adăugăm la appendChild ()
metodă. elemente, ambele cu
Salut
șir ca conținut.
var puternic = document.querySelector ("puternic"); var copie = puternic.cloneNod (adevărat); var div = document.querySelector ("div"); div.appendChild (copie);
10.
insertBefore ()
insertBefore ()
metodă adaugă un element copil specificat înaintea altui element copil. Metoda este numită de elementul părinte.nul
în locul său, se adaugă elementul copil care urmează să fie inserat ca ultimul copil al părintelui (similar cu appendChild ()
).Sintaxă
ele.insertBefore (newEle, refEle);
ELE
- Elementul părinte.newEle
- Se introduce un element HTML nou.refEle
- Un element de copil al lui ELE
înainte de care newEle
va fi introdus.Exemplu de cod
element cu ceva text în interior și adăugați-l inainte de
element în interiorul
var em = document.createElement ('em'); var puternic = document.querySelector ("puternic"); var div = document.querySelector ("div"); em.textContent = 'hi'; div.insertBefore (em, puternic);
Demo interactivă
appendChild ()
metodă. Aici trebuie doar să tastați selectorii de id pentru două elemente elementare (de la #A
la #R
) în casetele de intrare și puteți vedea cum insertBefore ()
metoda mută primul copil specificat inainte de al doilea.11.
createDocumentFragment ()
createDocumentFragment ()
metoda nu poate fi la fel de bine cunoscută ca și celelalte din această listă, dar este una importantă, mai ales dacă doriți inserați mai multe elemente în bloc, cum ar fi adăugarea mai multor rânduri la un tabel.DocumentFragment
obiect, care în esență este un nod DOM care nu face parte din arborele DOM. Este ca un tampon în care să adăugăm și să stocăm mai întâi alte elemente (de exemplu, mai multe rânduri), înainte de a le adăuga la nodul dorit din structura DOM (de exemplu, într-un tabel).DocumentFragment
obiect nu cauzează modificări ale aspectului, astfel încât să puteți adăuga cât mai multe elemente pe care le doriți înainte de a le trece în arborele DOM, provocând o modificare a aspectului numai în acest moment.Sintaxă
document.createDocumentFragment ()
Exemplu de cod
createElement ()
metoda, apoi adăugați-le la a DocumentFragment
obiect, adăugați în final acel fragment de document la un HTML folosind
appendChild ()
metodă.
var tab = document.querySelector ("tabel"); var df = document.createDocumentFragment (); pentru (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
proprietatea de a face la fel, cu toate acestea getComputedStyle ()
metoda a fost făcută doar pentru acest scop, ea returnează valorile calculate numai pentru citire din toate proprietățile CSS ale unui element HTML specificat.Sintaxă
var stil = getComputedStyle (ele, [pseudoEle])
stil
- A CSSStyleDeclaration
obiect returnat prin metoda. Acesta deține toate proprietățile CSS și valorile acestora ELE
element.ELE
- Elementul HTML din care sunt extrase valorile proprietății CSS.pseudoEle
- (opțional) Un șir care reprezintă un pseudo-element (de exemplu, ':după'
). Dacă este menționat acest lucru, atunci proprietățile CSS ale pseudo-elementului asociat asociate cu ELE
va fi returnat.Exemplu de cod
lăţime
valoarea a getComputedStyle ()
metodă.
varianta var = getComputedStyle (document.querySelector ('div')); alert (style.width);
13.
setAttribute ()
setAttribute ()
metoda fie adaugă un atribut nou la un element HTML sau actualizează valoarea a unui atribut care există deja.Sintaxă
ele.setAttribute (nume, valoare);
ELE
- Elementul HTML la care este adăugat un atribut sau al cărui atribut este actualizat.Nume
- Numele atributului.valoare
- Valoarea atributului.Exemplu de cod
contenteditable
atribui unui a setAttribute ()
metodă, care va transforma conținutul său editabil. var div = document.querySelector ("div"); div.setAttribute ( 'contenteditable', ")
14.
getAttribute ()
getAttribute ()
metodă returnează valoarea unui atribut specificat aparținând unui anumit element HTML.Sintaxă
ele.getAttribute (nume);
ELE
- Elementul HTML a cărui atribut este solicitat.Nume
- Numele atributului.Exemplu de cod
contenteditable
atributul care aparține getAttribute ()
metodă. var div = document.querySelector ("div"); alert (div.getAttribute ( 'contenteditable'))
15.
removeAttribute ()
removeAttribute ()
metodă elimină un atribut dat al unui element HTML specific.Sintaxă
ele.removeAttribute (nume);
ELE
- Elementul HTML a cărui atribut va fi eliminat.Nume
- Numele atributului.Exemplu de cod
contenteditable
atribut de la var div = document.querySelector ("div"); div.removeAttribute ( 'contenteditable');