15 „JavaScript“ metodai DOM manipuliavimui žiniatinklio kūrėjams
Kaip žiniatinklio kūrėjas dažnai turite manipuliuoti DOM, objekto modelis, kurį naudoja naršyklės nurodyti loginę struktūrą tinklalapių ir pagal šią struktūrą atvaizduoti HTML elementus ekrane.
HTML apibrėžia numatytoji DOM struktūra. Tačiau daugeliu atvejų galbūt norėsite tai manipuliuoti naudodami „JavaScript“, paprastai norėdami pridėti papildomų funkcijų į svetainę.
Šiame pranešime rasite sąrašą 15 pagrindinių „JavaScript“ metodų kad pagalba DOM manipuliavimui. Tikėtina, kad šiuos metodus dažnai naudosite savo kode, ir jūs taip pat pateksite į mūsų „JavaScript“ vadovus.
1. querySelector ()
The querySelector ()
metodas grąžina pirmąjį elementą, kuris atitinka vieną ar daugiau CSS parinkčių. Jei nerastas atitikimas, jis grįžta null
.
Prieš querySelector ()
buvo įdiegta, kūrėjai plačiai naudojasi getElementById ()
metodas atsiunčia elementą su nurodytu ID
vertė.
Nors getElementById ()
vis dar yra naudingas metodas, bet su naujesniu querySelector ()
ir querySelectorAll ()
metodai, kuriuos mes galime laisvai tiksliniai elementai pagal bet kurį CSS selektorių, todėl turime daugiau lankstumo.
Sintaksė
var ele = document.querySelector (selektorius);
ele
- Pirmasis atitikimo elementas arbanull
(jei elementai neatitinka selektorių)selektorių
- vienas ar daugiau CSS selektorių, pvz"#fooId"
,".fooClassName"
,".class1.class2"
, arba".class1, .class2"
Kodo pavyzdys
Šiame pavyzdyje pirmasis pirmos pastraipos 2 dalis trečias Patikrinkite Skirtingai Atitikimo elementai grąžinami kaip a Toliau pateiktas pavyzdys naudoja tą patį HTML kaip ir ankstesnis. Tačiau šiame pavyzdyje visos pastraipos yra pasirinktos su pirmos pastraipos 2 dalis trečias Renginiai kreipkitės į tai, kas vyksta su HTML elementu, pvz., paspaudimu, fokusavimu ar įkėlimu, į kuriuos galime reaguoti su „JavaScript“. Mes galime priskirti JS funkcijas klausykitės už šiuos įvykius elementuose ir kažką daryti, kai įvyko įvykis. Yra trys būdai priskirti tam tikro įvykio funkciją. Jei Metodas Sustabdo įvykių burbulavimą, t. Y. Neleidžia bet kurio įvykio klausytojui skambinti to paties įvykio tipui elemento protėviuose. Jei norite naudoti šią funkciją, galite naudoti 2 sintakses: Klausytojas vadinamas tik pirmą kartą, kai įvykis įvyksta, tada jis automatiškai atjungiamas nuo įvykio ir jo nebebus paleistas. Numatytasis įvykio veiksmas negali būti sustabdytas naudojant prevDefault () metodą. Šiame pavyzdyje pridedame paspaudimo įvykio klausytoją Priskirti The Naudoja tą pačią sintaksę kaip ir anksčiau Vadovaudamiesi kodo pavyzdžiu, kurį naudojome The Vėliau šį elementą galite įtraukti į tinklalapį naudodami skirtingus DOM įterpimo metodai, toks kaip Su šiuo pavyzdžiu galite sukurti naują pastraipos elementą: The Įdėtas vaikas gali būti arba a naujai sukurtas elementas, arba jau esamas. Pastaruoju atveju jis bus perkeltas iš ankstesnės padėties į paskutinio vaiko padėtį. Šiame pavyzdyje įterpiame a Toliau pateiktame interaktyviame demonstraciniame laiške Patikrinkite, kaip The Šiame pavyzdyje pašaliname The Šiame pavyzdyje vaiko elementas Kai jūs turite sukurti naują elementą, kuris turi būti tas pats kaip jau esantis elementas tinklalapyje galite tiesiog sukurti jau esamo elemento kopiją naudojant Šiame pavyzdyje mes sukuriame kopiją Kaip rezultatas, The Jei nurodomas vaiko elementas neegzistuoja arba aiškiai perduodamas Šiame pavyzdyje sukuriame naują Šis interaktyvus demonstravimas yra panašus į mūsų ankstesnį demoną, priklausantį The Tai sukuria a Kodėl mes tiesiog nepridėjome elementų tiesiai į DOM medį? Kadangi DOM įdėta sukelia išdėstymo pakeitimus, ir tai yra brangus naršyklės procesas dėl to, kad kelis tolesnius elementų įterpimus sukels daugiau maketų. Kita vertus, elementų pridėjimas a Šiame pavyzdyje mes sukuriame kelias stalo eilutes ir langelius su Todėl lentelės viduje bus įterptos penkios eilutės - kiekviena iš jų turi vieną langelį su numeriu nuo 1 iki 5.. Kartais norite patikrinti CSS turto vertes elementą prieš bet kokius pakeitimus. Galite naudoti Šiame pavyzdyje gauname ir įspėjame apskaičiuotą The Šiame pavyzdyje pridedame The Šiame pavyzdyje mes įspėjame apie The Šiame pavyzdyje pašaliname querySelector ()
metodas ir jo spalva pasikeičia į raudoną.
var firstDiv = document.querySelector ('div'); firstDiv.style.color = 'raudona';
Interaktyvi demonstracija
querySelector ()
metodą šiame interaktyviame demonstracijoje. Tiesiog įveskite selektorių, atitinkantį tuos, kuriuos galite rasti mėlynųjų dėžių viduje (pvz.,. #three
) ir spustelėkite mygtuką Pasirinkti. Atkreipkite dėmesį, kad įvesdami .blokuoti
, tik jo pirmoji instancija bus pasirinktas.2.
querySelectorAll ()
querySelector ()
kuri grąžina tik pirmuosius visų atitinkamų elementų, querySelectorAll ()
grąžina visus elementus, kurie atitinka nurodytą CSS selektorių.„NodeList“
objektas, kuris bus tuščias objektas, jei nebus surastų atitinkamų elementų.Sintaksė
var eles = document.querySelectorAll (selektorius);
eles
- A „NodeList“
objektas su visais suderinamais elementais kaip turto vertės. Objektas tuščias, jei nerastas atitikimas.selektorių
- vienas ar daugiau CSS selektorių, pvz "#fooId"
, ".fooClassName"
, ".class1.class2"
, arba ".class1, .class2"
Kodo pavyzdys
querySelectorAll ()
, ir yra mėlynos spalvos.
var pastraipos = document.querySelectorAll ('p'); už (dalių p) p.style.color = 'blue';
3.
addEventListener ()
foo ()
yra pasirinktinė funkcija, galite ją užregistruoti kaip paspaudimo įvykio klausytojas (skambinkite, kai paspaudžiamas mygtuko elementas) trimis būdais:
var btn = document.querySelector ('mygtukas'); btn.onclick = foo;
var btn = document.querySelector ('mygtukas'); btn.addEventListener („spustelėkite“, „foo“);
addEventListener ()
(trečiasis sprendimas) kai kurie privalumai; tai yra naujausias standartas, leidžiantis vienam įvykiui priskirti daugiau nei vieną funkciją kaip renginio klausytojus - ir yra naudingas parinkčių rinkinys.Sintaksė
ele.addEventListener (evt, klausytojas, [parinktys]);
ele
- HTML elementas, kurio klausytojas klausysis.evt
- Tikslinis įvykis.klausytojas
- Paprastai „JavaScript“ funkcija.galimybės
- (pasirinktinai) Objektas, turintis loginių savybių rinkinį (išvardytas žemiau).Galimybės Kas atsitinka, kai ji yra nustatyta tiesa
?sugauti
ele.addEventListener (evt, klausytojas, tiesa)
ele.addEventListener (evt, klausytojas, capture: true);
kartą
pasyvus
Kodo pavyzdys
foo
, į HTML žyma.
var btn = document.querySelector ('mygtukas'); btn.addEventListener („spustelėkite“, „foo“); funkcija foo () alarm („hello“);
Interaktyvi demonstracija
foo ()
pritaikytas kaip įvykių klausytojas bet kuriam iš šių trijų įvykių: įvesties
, spustelėkite
arba mouseover
& suaktyvinkite pasirinktą įvykį apačioje esančiame įvesties lauke, paspaudę, spustelėdami arba įvesdami jį.4.
removeEventListener ()
removeEventListener ()
metodas atsiima įvykio klausytoją anksčiau pridėta addEventListener ()
metodas nuo įvykio, kurį jis klausosi.Sintaksė
ele.removeEventListener (evt, klausytojas, [parinktys]);
addEventListener ()
metodas (išskyrus kartą
neįtraukta parinktis). Pasirinkimo galimybės yra labai specifinės, kad atpažintų klausytoją.Kodo pavyzdys
addEventListener ()
, čia pašaliname paspaudimo įvykio klausytoją foo
nuo elementas.
btn.removeEventListener („spustelėkite“, „foo“);
5.
createElement ()
createElement ()
metodas sukuria naują HTML elementą naudojant HTML žyma sukurti, pvz „p“
arba „div“
.PridėtiChild ()
(žr. vėliau šiame pranešime).Sintaksė
document.createElement (žymės pavadinimas);
žymės pavadinimas
- HTML žyma, kurią norite sukurti. Kodo pavyzdys
var pEle = document.createElement ('p')
6.
pridėtiChild ()
pridėtiChild ()
metodas prideda elementą kaip paskutinis vaikas į HTML elementą, kuris naudoja šį metodą.Sintaksė
ele.appendChild (childEle)
ele
- HTML elementas, į kurį vaikas
pridedamas kaip paskutinis vaikas.vaikas
- HTML elementas pridėtas kaip paskutinis vaikas ele
.Kodo pavyzdys
elementas yra a
pridėtiChild ()
ir aukščiau paminėtas createElement ()
metodus.
var div = document.querySelector ('div'); var strong = document.createElement („stiprus“); strong.textContent = 'Sveiki'; div.appendChild (stiprus);
Interaktyvi demonstracija
#a
į #r
yra vaiko elementai # tėvas-vienas
, # tėvas-du
, ir # tėvų-trys
ID selektoriai.pridėtiChild ()
metodas veikia įvesdami vieną iš tėvų ir vieno vaiko pasirinkimo pavadinimą į žemiau esančius įvesties laukus. Taip pat galite pasirinkti vaikus, priklausančius kitam tėvui.7.
removeChild ()
removeChild ()
metodas pašalina nurodytą vaikų elementą iš HTML elemento, kuris vadina šį metodą.Sintaksė
ele.removeChild (childEle)
ele
- Tėvų elementas vaikas
.vaikas
- Vaiko elementas ele
.Kodo pavyzdys
elementas, kurį mes pridėjome kaip vaiką
pridėtiChild ()
metodas. div.removeChild (stiprus);
8.
pakeistiChild ()
pakeistiChild ()
metodas pakeičia vaikų elementą kitu priklauso pagrindiniam elementui, kuris vadina šį metodą.Sintaksė
ele.replaceChild (newChildEle, oldChileEle)
ele
- Tėvų elementas, kurį reikia pakeisti vaikais.newChildEle
- Vaiko elementas ele
tai pakeis oldChildEle
.oldChildEle
- Vaiko elementas ele
, kuri bus pakeista newChildEle
.Kodo pavyzdys
priklauso
žyma.
var em = document.createElement ('em'); var strong = document.querySelector („stiprus“); var div = document.querySelector ('div'); em.textContent = 'hi'; div.replaceChild (em, strong);
9.
cloneNode ()
cloneNode ()
metodas.Sintaksė
var dupeEle = ele.cloneNode ([giliai])
dupeEle
- Kopija ele
elementas.ele
- Kopijuojamas HTML elementas.giliai
- (neprivaloma) Būlio reikšmė. Jei jis nustatytas tiesa
, dupeEle
turės visus vaiko elementus ele
turi, jei jis nustatytas klaidinga
jis bus klonuotas be jo vaikų.Kodo pavyzdys
elementas
cloneNode ()
, tada mes jį pridedame prie pridėtiChild ()
metodas. elementai, tiek su
Sveiki
eilutė kaip turinys.
var strong = document.querySelector („stiprus“); var copy = strong.cloneNode (tiesa); var div = document.querySelector ('div'); div.appendChild (kopija);
10.
įterpti prieš ()
įterpti prieš ()
metodas prideda nurodytą vaiko elementą prieš kitą vaikų elementą. Metodas vadinamas pagrindiniu elementu.null
jos vietoje įterpiamas įterpiamas vaikų elementas kaip paskutinį tėvų vaiką (panašus į pridėtiChild ()
).Sintaksė
ele.insertBefore (newEle, refEle);
ele
- Tėvų elementas.newEle
- Įterpiamas naujas HTML elementas.refEle
- Vaiko elementas ele
prieš tai newEle
bus įterptas.Kodo pavyzdys
elementas su tam tikru tekstu ir pridėkite jį anksčiau
elementas
var em = document.createElement ('em'); var strong = document.querySelector („stiprus“); var div = document.querySelector ('div'); em.textContent = 'hi'; div.insertPrieš (stiprus);
Interaktyvi demonstracija
pridėtiChild ()
metodas. Čia jums reikia įvesti tik dviejų vaikų elementų (nuo #a
į #r
) į įvesties laukelius ir pamatysite, kaip įterpti prieš ()
metodas perkelia pirmąjį nurodytą vaiką anksčiau Antras.11.
createDocumentFragment ()
createDocumentFragment ()
metodas gali būti ne taip gerai žinomas kaip kiti šiame sąraše, tačiau yra svarbus, ypač jei norite įdėkite kelis elementus urmu, pvz., prie stalo pridedamos kelios eilutės.„DocumentFragment“
objektą, kuri iš esmės yra DOM mazgas, kuris nėra DOM medžio dalis. Tai tarsi buferis, kuriame mes galime pridėti ir saugoti kitus elementus (pvz., Kelias eilutes), prieš juos pridedant prie norimo mazgo DOM medyje (pvz., Prie lentelės).„DocumentFragment“
objektą nesukelia jokių išdėstymo pakeitimų, todėl galite pridėti tiek elementų, kiek norite, prieš perduodami juos į DOM medį, todėl išdėstymas pasikeičia tik šiuo metu.Sintaksė
document.createDocumentFragment ()
Kodo pavyzdys
createElement ()
tada pridėkite juos prie a „DocumentFragment“
galiausiai pridėkite tą dokumento fragmentą į HTML naudojant
pridėtiChild ()
metodas.
var table = document.querySelector ("lentelė"); var df = document.createDocumentFragment (); už (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
turtą daryti tą patį, tačiau getComputedStyle ()
metodas buvo parengtas tik šiam tikslui grąžina tik skaitomas apskaičiuotas reikšmes visų nustatytų HTML elementų CSS savybių.Sintaksė
var style = getComputedStyle (ele, [pseudoEle])
stilius
- A CSSStyleDeklaracija
objektas grąžinamas metodu. Jis turi visas CSS savybes ir jų reikšmes ele
elementas.ele
- HTML elementas, kurio CSS nuosavybės vertės yra atsiimtos.pseudoEle
- (neprivaloma) eilutė, atspindinti pseudo elementą (pvz.,, „: po“
). Jei tai paminėta, tada nurodytam pseudo elementui priskirtos CSS savybės ele
bus grąžintas.Kodo pavyzdys
plotis
vertė a getComputedStyle ()
metodas.
var style = getComputedStyle (document.querySelector ('div')); įspėjimas (style.width);
13.
setAttribute ()
setAttribute ()
metodas prideda naują atributą į HTML elementą, arba atnaujina vertę atributo, kuris jau yra.Sintaksė
ele.setAttribute (pavadinimas, vertė);
ele
- HTML elementas, kuriam pridedamas atributas, arba kuris atributas atnaujinamas.vardas
- Atributo pavadinimas.vertė
- Atributo vertė.Kodo pavyzdys
tenkinamas
atributas a setAttribute ()
metodas, kuris pakeis jo turinį. var div = document.querySelector ('div'); div.setAttribute („turinio pasiekiamumas“)
14.
getAttribute ()
getAttribute ()
metodas grąžina nurodyto atributo vertę priklauso tam tikram HTML elementui.Sintaksė
ele.getAttribute (vardas);
ele
- Reikiamas HTML elementas.vardas
- Atributo pavadinimas.Kodo pavyzdys
tenkinamas
atributas, priklausantis getAttribute ()
metodas. var div = document.querySelector ('div'); įspėjimas (div.getAttribute („contenteditable“))
15.
removeAttribute ()
removeAttribute ()
metodas pašalina tam tikrą atributą konkretaus HTML elemento.Sintaksė
ele.removeAttribute (vardas);
ele
- HTML elementas, kurio atributas turi būti pašalintas.vardas
- Atributo pavadinimas.Kodo pavyzdys
tenkinamas
atributas iš var div = document.querySelector ('div'); div.removeAttribute („contenteditable“);