15 JavaScript-menetelmät DOM-manipulointia varten Web-kehittäjille
Web-kehittäjänä sinun täytyy usein manipuloida DOM, objektin malli, jota selaimet käyttävät määritä looginen rakenne verkkosivujen ja tämän rakenteen perusteella tehdä HTML-elementtejä näytöllä.
HTML määrittelee oletuksena DOM-rakenne. Monissa tapauksissa saatat kuitenkin haluta manipuloida tätä JavaScriptin avulla lisää lisätoimintoja sivustoon.
Tässä viestissä on luettelo 15 perustavaa JavaScript-menetelmää että DOM: n manipulointi. Voit todennäköisesti käyttää näitä menetelmiä usein koodissasi, ja voit myös törmätä niihin JavaScript-opetusohjelmissamme.
1. querySelector ()
querySelector ()
menetelmä palauttaa ensimmäisen elementin, joka vastaa yhtä tai useampaa CSS-valitsinta. Jos vastausta ei löydy, se palaa tyhjä
.
Ennen querySelector ()
otettiin käyttöön, kehittäjät käyttivät niitä laajasti getElementById ()
menetelmä noutaa elementin, jolla on määrätty id
arvo.
Siitä huolimatta getElementById ()
on edelleen hyödyllinen menetelmä, mutta uudempi querySelector ()
ja querySelectorAll ()
me olemme vapaita Kohde-elementit perustuvat mihin tahansa CSS-valitsimeen, näin ollen meillä on enemmän joustavuutta.
Syntaksi
var ele = document.querySelector (valitsin);
ele
- Ensimmäinen sovituselementti taityhjä
(jos mikään elementti ei vastaa valintoja)valitsin
- yksi tai useampi CSS-valitsin, kuten"#FooId"
,".FooClassName"
," .Class1.class2"
, tai".class1, .class2"
Koodin esimerkki
Tässä esimerkissä ensimmäinen 1 kohta Kaksi kappaletta 3 kohta Testaa Toisin kuin Vastaavat elementit palautetaan a Alla oleva esimerkki käyttää samaa HTML-koodia kuin edellinen. Tässä esimerkissä kaikki kohdat valitaan 1 kohta Kaksi kappaletta 3 kohta Tapahtumat viittaa siihen, mitä tapahtuu HTML-elementillä, kuten napsautuksella, tarkennuksella tai latauksella, johon voimme reagoida JavaScriptin avulla. Voimme määrittää JS-toiminnot kuunnella Näitä tapahtumia elementteissä ja tehdä jotain tapahtuman tapahtuessa. Voit olla kolme tapaa määritä toiminto tiettyyn tapahtumaan. Jos Menetelmä Pysäyttää tapahtuman kuplittamisen, ts. Estää tapahtuman kuuntelijoiden kutsumisen saman tapahtuman tyypille elementin esi-isissä. Voit käyttää tätä ominaisuutta käyttämällä kahta syntaksi: Kuuntelijaa kutsutaan vain ensimmäistä kertaa tapahtuman tapahtuessa, sitten se irrotetaan automaattisesti tapahtumasta ja sitä ei enää käynnistetä.. Tapahtuman oletustoimintoa ei voi pysäyttää estdefault () -menetelmällä. Tässä esimerkissä lisätään klikkaustapahtuman kuuntelija Määritä Käyttää samaa syntaksi kuin edellä Noudattamalla Code-koodia, jota käytimme Voit myöhemmin lisätä tämän elementin Web-sivulle käyttämällä erilaisia DOM-lisäysmenetelmät, kuten Seuraavan esimerkin avulla voit luoda uuden kappaleelementin: Lisättävä lapsi voi olla joko a uusi elementti, tai jo olemassa oleva. Jälkimmäisessä tapauksessa se siirretään edellisestä sijainnistaan viimeisen lapsen asemaan. Tässä esimerkissä lisätään a Seuraavassa vuorovaikutteisessa demossa on kirjaimia Tarkista, miten Tässä esimerkissä poistamme Tässä esimerkissä lapsielementti Kun on luotava uusi elementti, jonka täytyy olla sama kuin jo olemassa oleva elementti Web-sivulla voit yksinkertaisesti luo kopio jo olemassa olevasta elementistä käyttämällä Tässä esimerkissä luomme kopion Tuloksena, Jos viitattua lapsielementtiä ei ole olemassa tai annat nimenomaisesti Tässä esimerkissä luomme uuden Tämä interaktiivinen demo toimii samoin kuin edellinen demo, joka kuuluu Se luo Miksi emme vain lisää elementtejä suoraan DOM-puuhun? Koska DOM-lisäys aiheuttaa layout-muutoksia, ja se on kallista selainprosessia koska useiden seurauksena olevien elementtien lisäykset aiheuttavat enemmän asettelumuutoksia. Toisaalta elementtien lisääminen a Tässä esimerkissä luomme useita taulukon rivejä ja soluja Tämän seurauksena taulukon sisälle lisätään viisi riviä - joista jokainen sisältää yhden solun, jonka numero on 1–5.. Joskus haluat tarkista CSS-ominaisuuden arvot elementti ennen muutosten tekemistä. Voit käyttää Tässä esimerkissä saamme ja varoitamme lasketun Tässä esimerkissä lisätään Tässä esimerkissä hälytämme arvon Tässä esimerkissä poistamme querySelector ()
ja sen väri muuttuu punaiseksi.
var firstDiv = document.querySelector ('div'); firstDiv.style.color = 'punainen';
Interaktiivinen demo
querySelector ()
seuraavassa interaktiivisessa demossa. Kirjoita vain sininen laatikko sisälle löytyvä valitsin (esim. #kolme
) ja napsauta Valitse-painiketta. Huomaa, että jos kirjoitat .lohko
, vain sen ensimmäinen oikeusaste valitaan.2.
querySelectorAll ()
querySelector ()
joka palauttaa vain ensimmäisen kerran kaikki vastaavat elementit, querySelectorAll ()
palauttaa kaikki elementit, jotka vastaavat määritettyä CSS-valitsinta.nodelist
objekti, joka on tyhjä objekti, jos vastaavia elementtejä ei löydy.Syntaksi
var eles = document.querySelectorAll (valitsin);
eles
- nodelist
objekti, jolla on kaikki vastaavat elementit ominaisuusarvoina. Objekti on tyhjä, jos vastauksia ei löydy.valitsin
- yksi tai useampi CSS-valitsin, kuten "#FooId"
, ".FooClassName"
, " .Class1.class2"
, tai ".class1, .class2"
Koodin esimerkki
querySelectorAll ()
, ja ovat sinisiä.
var numbers = document.querySelectorAll ('p'); ((p p) -kohdassa) p.style.color = 'blue';
3.
addEventListener ()
foo ()
on mukautettu toiminto, voit rekisteröidä sen klikkaustapahtuman kuuntelijana (kutsutaan sitä, kun painike painetaan) kolmella tavalla:
var btn = document.querySelector ('painike'); btn.onclick = foo;
var btn = document.querySelector ('painike'); btn.addEventListener ('klikkaa', foo);
addEventListener ()
(kolmas ratkaisu) on joitakin ammattilaisia; se on uusin standardi - mahdollistaa useamman kuin yhden toiminnon osoittamisen tapahtumien kuuntelijoiksi yhteen tapahtumaan - ja siinä on hyödyllinen valikoima vaihtoehtoja.Syntaksi
ele.addEventListener (evt, kuuntelija, [vaihtoehdot]);
ele
- HTML-elementti, jota tapahtuman kuuntelija kuuntelee.EVT
- Kohdennettu tapahtuma.kuuntelija
- Tyypillisesti JavaScript-toiminto.vaihtoehtoja
- (valinnainen) Objekti, jossa on joukko boolean ominaisuuksia (lueteltu alla).vaihtoehdot Mitä tapahtuu, kun se on asetettu totta
?kaapata
ele.addEventListener (evt, kuuntelija, totta)
ele.addEventListener (evt, kuuntelija, capture: true);
kerran
passiivinen
Koodin esimerkki
foo
, että HTML-tunniste.
var btn = document.querySelector ('painike'); btn.addEventListener ( 'click', foo); toiminto foo () hälytys ('hello');
Interaktiivinen demo
foo ()
mukautettu toiminto tapahtuman kuuntelijana mihin tahansa seuraavista tapahtumista: panos
, klikkaus
tai mouseover
& käynnistää valitun tapahtuman alhaalla olevalla syöttökentällä leijuttamalla, napsauttamalla tai kirjoittamalla siihen.4.
removeEventListener ()
removeEventListener ()
menetelmä irrottaa tapahtuman kuuntelijan aiemmin lisätty addEventListener ()
menetelmä siitä, mitä se kuuntelee.Syntaksi
ele.removeEventListener (evt, kuuntelija, [vaihtoehdot]);
addEventListener ()
menetelmä (lukuun ottamatta. \ t kerran
vaihtoehto, joka on poissuljettu). Vaihtoehtoja käytetään olemaan hyvin tarkkoja, kun tunnistetaan kuuntelija, joka on irrotettava.Koodin esimerkki
addEventListener ()
, täällä poistamme klikkaustapahtuman kuulijan foo
alkaen elementti.
btn.removeEventListener ( 'click', foo);
5.
createElement ()
createElement ()
menetelmä luo uuden HTML-elementin käyttämällä HTML-tunnisteen nimi luodaan, kuten 'P'
tai 'Div'
.AppendChild ()
(katso myöhemmin tässä viestissä).Syntaksi
document.createElement (kirjoita tunniste);
merkin nimi
- Sen HTML-tunnisteen nimi, jonka haluat luoda. Koodin esimerkki
var pEle = document.createElement ('p')
6.
AppendChild ()
AppendChild ()
menetelmä lisää elementin viimeiseksi lapseksi HTML-elementtiin, joka kutsuu tämän menetelmän.Syntaksi
ele.appendChild (childEle)
ele
- HTML-elementti, johon childEle
lisätään viimeisenä lapsena.childEle
- HTML-elementti lisättiin viimeiseksi lapseksi ele
.Koodin esimerkki
elementti on a: n lapsi
AppendChild ()
ja edellä mainitut createElement ()
menetelmät.
var div = document.querySelector ('div'); var strong = document.createElement ('vahva'); strong.textContent = 'Hei'; div.appendChild (voimakas);
Interaktiivinen demo
#A
että #R
ovat lapsen elementtejä # Vanhempi-yksi
, # Vanhempi-kaksi
, ja # Vanhempi-kolme
id-valitsimet.AppendChild ()
menetelmä toimii kirjoittamalla yhden vanhemman ja yhden lapsen valintanimen alla oleviin syöttökenttiin. Voit valita myös toiselle vanhemmalle kuuluvia lapsia.7.
removeChild ()
removeChild ()
menetelmä poistaa määritetyn lapsielementin HTML-elementistä, joka kutsuu tätä menetelmää.Syntaksi
ele.removeChild (childEle)
ele
- Vanhempi elementti childEle
.childEle
- Lapsen elementti ele
.Koodin esimerkki
elementti, jonka lisäsimme lapsena
AppendChild ()
menetelmä. div.removeChild (voimakas);
8.
replaceChild ()
replaceChild ()
menetelmä korvaa lapsen elementin toisella kuuluu vanhempaan elementtiin, joka kutsuu tätä menetelmää.Syntaksi
ele.replaceChild (newChildEle, oldChileEle)
ele
- Vanhempi osa, jonka lapset korvataan.newChildEle
- Lapsen elementti ele
joka korvaa oldChildEle
.oldChildEle
- Lapsen elementti ele
, joka korvataan numerolla newChildEle
.Koodin esimerkki
kuuluvat
tag.
var em = document.createElement ('em'); var strong = document.querySelector ('vahva'); var div = document.querySelector ('div'); em.textContent = 'hi'; div.replaceChild (em, vahva);
9.
cloneNode ()
cloneNode ()
menetelmä.Syntaksi
var dupeEle = ele.cloneNode ([syvä])
dupeEle
- Kopio ele
elementti.ele
- Kopioitava HTML-elementti.syvä
- (valinnainen) Boolean arvo. Jos se on asetettu totta
, dupeEle
on kaikki lapsen elementit ele
on, jos se on asetettu väärä
se kloonataan ilman sen lapsia.Koodin esimerkki
elementti
cloneNode ()
, sitten lisäämme sen AppendChild ()
menetelmä. elementtejä
Hei
merkkijono sisällönä.
var strong = document.querySelector ('vahva'); var copy = strong.cloneNode (totta); var div = document.querySelector ('div'); div.appendChild (kopio);
10.
insertBefore ()
insertBefore ()
menetelmä lisää tietyn lapsielementin ennen toista lapsielementtiä. Menetelmää kutsuu emoelementti.tyhjä
sen sijasta lisätään lisättävä lapsielementti vanhemman viimeisenä lapsena (samanlainen kuin AppendChild ()
).Syntaksi
ele.insertBefore (newEle, refEle);
ele
- Vanhempi elementti.newEle
- Uusi HTML-elementti lisätään.refEle
- Lapsen elementti ele
ennen joka newEle
lisätään.Koodin esimerkki
elementti ja lisää se ennen
elementin sisällä
var em = document.createElement ('em'); var strong = document.querySelector ('vahva'); var div = document.querySelector ('div'); em.textContent = 'hi'; div.insertBefore (em, strong);
Interaktiivinen demo
AppendChild ()
menetelmä. Täällä sinun tarvitsee vain kirjoittaa kahden lapsielementin id -valitsimet (alkaen #A
että #R
) syöttökenttiin ja näet, miten insertBefore ()
menetelmä siirtää ensimmäisen määritetyn lapsen ennen toinen.11.
createDocumentFragment ()
createDocumentFragment ()
menetelmä ei ehkä ole yhtä tunnettu kuin muut tässä luettelossa, mutta on kuitenkin tärkeä, varsinkin jos haluat lisää useita elementtejä irtotavarana, esimerkiksi lisätä useita rivejä taulukkoon.DocumentFragment
esine, joka on olennaisesti DOM-solmu, joka ei kuulu DOM-puuhun. Se on kuin puskuri, jossa voimme ensin lisätä ja tallentaa muita elementtejä (esim. Useita rivejä) ennen kuin lisäät ne haluttuun solmuun DOM-puussa (esim. Taulukkoon).DocumentFragment
esine ei aiheuta ulkoasun muutoksia, joten voit lisätä siihen niin monta elementtiä kuin haluat, ennen kuin siirrät ne DOM-puuhun, mikä aiheuttaa asettelumuutoksen vain tässä vaiheessa.Syntaksi
document.createDocumentFragment ()
Koodin esimerkki
createElement ()
ja lisää ne a DocumentFragment
lisää, lopuksi lisää tämä dokumenttifragmentti HTML: ään käyttämällä
AppendChild ()
menetelmä.
var table = document.querySelector ("taulukko"); var df = document.createDocumentFragment (); varten (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
omaisuutta tehdä samoin, kuitenkin getComputedStyle ()
menetelmä on tehty juuri tätä tarkoitusta varten palauttaa vain luku -arvot määritetyn HTML-elementin kaikista CSS-ominaisuuksista.Syntaksi
var style = getComputedStyle (ele, [pseudoEle])
tyyli
- CSSStyleDeclaration
menetelmän palauttama esine. Se sisältää kaikki CSS-ominaisuudet ja niiden arvot ele
elementti.ele
- HTML-elementti, jonka CSS-ominaisuusarvot haetaan.pseudoEle
- (valinnainen) Merkkijono, joka edustaa pseudoelementtiä (esimerkiksi, ':jälkeen'
). Jos tämä on mainittu, niin määriteltyyn pseudoelementtiin liittyvät CSS-ominaisuudet ele
palautetaan.Koodin esimerkki
leveys
arvo a getComputedStyle ()
menetelmä.
var style = getComputedStyle (document.querySelector ('div')); alert (style.width);
13.
setAttribute ()
setAttribute ()
menetelmä lisää uuden ominaisuuden HTML-elementtiin, tai päivittää arvon määritteestä, joka on jo olemassa.Syntaksi
ele.setAttribute (nimi, arvo);
ele
- HTML-elementti, johon attribuutti lisätään tai jonka attribuuttia päivitetään.nimi
- Määritteen nimi.arvo
- Määritteen arvo.Koodin esimerkki
contenteditable
määrite a setAttribute ()
menetelmä, joka muuttaa sen sisällön muokattavaksi. var div = document.querySelector ('div'); div.setAttribute (contenteditable ',')
14.
getAttribute ()
getAttribute ()
menetelmä palauttaa määritetyn määritteen arvon kuuluu tiettyyn HTML-elementtiin.Syntaksi
ele.getAttribute (nimi);
ele
- HTML-elementti, jolta attribuuttia pyydetään.nimi
- Määritteen nimi.Koodin esimerkki
contenteditable
ominaisuus, joka kuuluu getAttribute ()
menetelmä. var div = document.querySelector ('div'); alert (div.getAttribute ( 'contenteditable'))
15.
removeAttribute ()
removeAttribute ()
menetelmä poistaa tietyn määritteen tiettyyn HTML-elementtiin.Syntaksi
ele.removeAttribute (nimi);
ele
- Mitkä attribuutin HTML-elementit on poistettava.nimi
- Määritteen nimi.Koodin esimerkki
contenteditable
ominaisuus var div = document.querySelector ('div'); div.removeAttribute (contenteditable ');