15 JavaScript módszerek a webes fejlesztők számára a DOM manipulálásához
Mint webfejlesztő, gyakran kell manipulálni a DOM, a böngészők által használt objektummodell adja meg a logikai struktúrát weblapok, és a struktúra alapján megjelenítheti a HTML elemeket a képernyőn.
A HTML meghatározza a alapértelmezett DOM struktúra. Sok esetben azonban ezt JavaScript-szel manipulálhatja, általában azért, hogy további funkciók hozzáadása egy webhelyre.
Ebben a bejegyzésben talál egy listát 15 alapvető JavaScript-módszer hogy DOM-manipuláció támogatása. Valószínűleg ezeket a módszereket gyakran használná a kódodban, és a JavaScript bemutatóinkban is behatolnak.
1. querySelector ()
A querySelector ()
eljárás visszaadja az első elemet, amely egy vagy több CSS szelektorhoz illeszkedik. Ha nincs találat, visszatér nulla
.
Előtt querySelector ()
bevezetésre került, a fejlesztők széles körben használták getElementById ()
módszer, amely egy adott elemet egy megadott módon szerez id
érték.
Habár getElementById ()
még mindig hasznos módszer, de az újabb querySelector ()
és querySelectorAll ()
módszerek, amiket szabadon tudunk CSS-selektoron alapuló célelemek, így nagyobb rugalmasságunk van.
Szintaxis
var ele = document.querySelector (választó);
ele
- Első egyező elem vagynulla
(ha egyetlen elem sem felel meg a választóknak)választó
- egy vagy több CSS szelektor, például"#FooId"
,".FooClassName"
,”.Class1.class2"
, vagy".class1, .class2"
Kódpélda
Ebben a példában az első az első bekezdés második bekezdés 3. bekezdés Tesztelje a nem úgy mint A megfelelő elemek visszaadhatók a Az alábbi példa ugyanazt a HTML-t használja, mint az előző. Ebben a példában azonban az összes bekezdés kerül kiválasztásra az első bekezdés második bekezdés 3. bekezdés Események utaljon arra, hogy mi történik egy HTML elemgel, például kattintással, fókuszálással vagy betöltéssel, amelyre JavaScript segítségével reagálhatunk. A JS funkciókat hozzárendelhetjük hallgat ezeknek az eseményeknek az elemeihez, és tegyen valamit, amikor az esemény bekövetkezett. Háromféleképpen lehet hozzárendel egy függvényt egy adott eseményhez. Ha A módszer Megállítja az eseménybuborékolást, vagyis megakadályozza, hogy az esemény előfutárai azonos eseménytípusra hívjanak az elem őseiben. A szolgáltatás használatához 2 szintaxist használhat: A hallgató csak az első alkalommal történik, amikor az esemény megtörténik, majd automatikusan elválik az eseménytől, és többé nem indítja el.. Az esemény alapértelmezett művelete nem állítható le az PrevDefault () módszerrel. Ebben a példában egy kattintáses esemény figyelőt hívunk Adja meg a A Ugyanezt a szintaxist használja, mint a fentiek Az általunk használt kódpéldányt követve A Később hozzáadhatja ezt az elemet a weblaphoz különböző módon módszerek a DOM behelyezéséhez, mint például A következő példával új bekezdéselemet hozhat létre: A A behelyezendő gyermek lehet a újonnan létrehozott elem, vagy egy már létező. Ez utóbbi esetben az előző pozícióból az utolsó gyermek helyzetébe kerül. Ebben a példában a A következő interaktív demóban levő levelek Nézd meg, hogyan A Ebben a példában eltávolítjuk a A Ebben a példában a gyermekelem Amikor létre kell hoznod egy új elemet, amire szükséged lesz ugyanaz, mint egy már létező elem a weboldalon egyszerűen megteheti hozzon létre egy másolatot a már létező elemről használni a Ebben a példában egy példányt hozunk létre a Ennek eredményeként, A Ha a hivatkozott gyermekelem nem létezik, vagy kifejezetten átadja Ebben a példában újat hozunk létre Ez az interaktív bemutató hasonlóan működik az előző demóhoz A Azt létrehoz egy Miért nem adunk hozzá közvetlenül elemeket a DOM fához? Mivel DOM beillesztés az elrendezés megváltozik, és ez egy drága böngésző folyamat mivel a többszörös, egymás után elhelyezett elemek több elrendezési változást okoznak. Másrészről az elemek hozzáadása a Ebben a példában több asztali sort és cellát hozunk létre a Ennek eredményeként öt sor - mindegyik 1-től 5-ig terjedő számú cellát tartalmaznak - a táblázatba kerül.. Néha akarsz ellenőrizze a CSS tulajdonságértékeit egy elemet, mielőtt bármilyen változtatást végezne. Használhatja a Ebben a példában kapjuk és figyelmeztetjük a számított értékeket A Ebben a példában hozzáadjuk a A Ebben a példában figyelmeztetjük a A Ebben a példában eltávolítjuk a querySelector ()
módja és színe pirosra vált.
var firstDiv = document.querySelector ('div'); firstDiv.style.color = 'piros';
Interaktív bemutató
querySelector ()
metódus a következő interaktív demóban. Csak írjon be egy olyan választót, amely megfelel a kék dobozokban találhatóaknak (pl. #három
), majd kattintson a Kiválasztás gombra. Ne feledje, hogy ha beírja .Blokk
, csak az első példánya kiválasztásra kerül.2.
querySelectorAll ()
querySelector ()
amely csak az összes megfelelő elem első példányát adja vissza, querySelectorAll ()
visszaadja az összes olyan elemet, amely megfelel a megadott CSS választónak.NodeList
objektum, amely üres objektum lesz, ha nem találnak megfelelő elemeket.Szintaxis
var eles = document.querySelectorAll (választó);
ELES
- A NodeList
objektum, amelynek minden megfelelő elemét tulajdonságértékekként használjuk. Az objektum üres, ha nincs találat.választó
- egy vagy több CSS szelektor, például "#FooId"
, ".FooClassName"
, ”.Class1.class2"
, vagy ".class1, .class2"
Kódpélda
querySelectorAll ()
, és kék színűek.
var numbers = document.querySelectorAll ('p'); a (var p) bekezdésben p.style.color = 'blue';
3.
addEventListener ()
ize ()
egy egyéni funkció, regisztrálhatod mint egy kattintáses esemény hallgató (hívja meg, amikor a gombelemre kattint):
var btn = document.querySelector ('gomb'); btn.onclick = ize;
var btn = document.querySelector ('gomb'); btn.addEventListener ('click', foo);
addEventListener ()
(a harmadik megoldás) néhány profi; ez a legfrissebb szabvány, amely lehetővé teszi, hogy egy eseményhez egynél több funkciót rendelhessünk eseményfigyelőkhöz, és hasznos opciókkal rendelkezik.Szintaxis
ele.addEventListener (evt, hallgató, [opciók]);
ele
- A HTML elem, amelyet az eseményfigyelő fog hallgatni.EVT
- A célzott esemény.hallgató
- Jellemzően a JavaScript funkció.opciók
- (opcionális) Egy objektum, melynek logikai tulajdonságai vannak (az alábbiakban felsorolva).Opciók Mi történik, ha be van állítva igaz
?elfog
ele.addEventListener (evt, hallgató, igaz)
ele.addEventListener (evt, hallgató, capture: true);
egyszer
passzív
Kódpélda
ize
, hoz HTML címke.
var btn = document.querySelector ('gomb'); btn.addEventListener ( 'click', foo); foo () alarm ('hello') funkció;
Interaktív bemutató
ize ()
Egyéni funkció eseményfigyelőként a következő három esemény bármelyikéhez: bemenet
, kettyenés
vagy egérráhelyezés
és az alsó beviteli mezőben kiválaszthatja a kiválasztott eseményt azáltal, hogy belenyomja, rákattint vagy gépel be.4.
removeEventListener ()
removeEventListener ()
eljárás leválaszt egy eseményfigyelőt korábban hozzáadva a addEventListener ()
eljárás az eseménytől, amit hallgat.Szintaxis
ele.removeEventListener (evt, hallgató, [opciók]);
addEventListener ()
módszer (kivéve a. \ t egyszer
opció, amely kizárt). A választási lehetőségek nagyon specifikusak a leválasztandó hallgatók azonosítására.Kódpélda
addEventListener ()
, itt eltávolítjuk a hívott kattintási esemény hallgatóját ize
tól elem.
btn.removeEventListener ( 'click', foo);
5.
createElement ()
createElement ()
eljárás új HTML elemet hoz létre használni a a HTML címke neve létrehozni, például 'P'
vagy 'Div'
.AppendChild ()
(lásd később a hozzászólásban).Szintaxis
document.createElement (tagName);
tagName
- A létrehozandó HTML-címke neve. Kódpélda
var pEle = document.createElement ('p')
6.
AppendChild ()
AppendChild ()
eljárás elemet ad az utolsó gyermeknek a HTML-elemhez, amely ezt a módszert igényli.Szintaxis
ele.appendChild (childEle)
ele
- A HTML elem, amelyhez childEle
az utolsó gyermeke.childEle
- A HTML elem az utolsó gyermekként hozzáadott ele
.Kódpélda
elem az a
AppendChild ()
és a fentiekben említettek szerint createElement ()
mód.
var div = document.querySelector ('div'); var strong = document.createElement ('erős'); strong.textContent = 'Hello'; div.appendChild (erős);
Interaktív bemutató
#A
nak nek #r
a gyerek gyermekelemei # Szülő-on
, # Szülő-két
, és # Szülő-három
id választók.AppendChild ()
módszer működik írja be az egyik szülő és egy gyermekválasztó nevét az alábbi beviteli mezőkbe. Kiválaszthat egy másik szülőhöz tartozó gyermekeket is.7.
removeChild ()
removeChild ()
eljárás eltávolítja a megadott gyermekelemet a HTML elemből, amely ezt a módszert hívja.Szintaxis
ele.removeChild (childEle)
ele
- A childEle
.childEle
- A gyermek eleme ele
.Kódpélda
elemként, amelyet gyermekként adtunk a
AppendChild ()
eljárás. div.removeChild (erős);
8.
replaceChild ()
replaceChild ()
eljárás helyettesíti a gyermekelemet egy másikval a szülő elemhez tartozik, amely ezt a módszert hívja.Szintaxis
ele.replaceChild (newChildEle, oldChileEle)
ele
- A szülői elem, amelynek gyermekeit ki kell cserélni.newChildEle
- Gyermek eleme ele
amely helyettesíti oldChildEle
.oldChildEle
- Gyermek eleme ele
, amit a helyettesít newChildEle
.Kódpélda
a
címke.
var em = document.createElement ('em'); var strong = document.querySelector ('erős'); var div = document.querySelector ('div'); em.textContent = 'hi'; div.replaceChild (em, erős);
9.
cloneNode ()
cloneNode ()
eljárás.Szintaxis
var dupeEle = ele.cloneNode ([mély])
dupeEle
- A ele
elem.ele
- A másolandó HTML elem.mély
- (opcionális) A logikai érték. Ha be van állítva igaz
, dupeEle
lesz az összes gyermek eleme ele
van, ha be van állítva hamis
a gyerekek nélkül lesz klónozva.Kódpélda
elem
cloneNode ()
, majd hozzáadjuk a AppendChild ()
eljárás. elemeket, mindkettőt a
Szia
karakterlánc tartalmát.
var strong = document.querySelector ('erős'); var copy = strong.cloneNode (igaz); var div = document.querySelector ('div'); div.appendChild (másolat);
10.
insertBefore ()
insertBefore ()
eljárás hozzáad egy meghatározott gyermekelemet egy másik gyermekelemhez. A módszert a szülőelem nevezi.nulla
a helyére hozzáadjuk a beilleszthető gyermekelemet mint a szülő utolsó gyermeke (hasonló AppendChild ()
).Szintaxis
ele.insertBefore (newEle, refEle);
ele
- Szülőelem.newEle
- Új HTML elem beillesztése.refEle
- A gyermek eleme ele
előtt newEle
beillesztésre kerül.Kódpélda
elemet, és adjunk hozzá előtt a
eleme a
var em = document.createElement ('em'); var strong = document.querySelector ('erős'); var div = document.querySelector ('div'); em.textContent = 'hi'; div.insertBeint (em, strong);
Interaktív bemutató
AppendChild ()
eljárás. Itt csak két gyermekelem azonosítóját kell beírni (innen: #A
nak nek #r
) a beviteli mezőkbe, és láthatjuk, hogy az insertBefore ()
a módszer az első meghatározott gyermeket mozgatja előtt a második.11.
createDocumentFragment ()
createDocumentFragment ()
a módszer nem lehet olyan jól ismert, mint a többi listán, de fontos, különösen, ha azt szeretné több elem beillesztése ömlesztve, például több sor hozzáadása egy táblához.DocumentFragment
tárgy, ami lényegében egy DOM csomópont, amely nem része a DOM fának. Olyan, mint egy puffer, ahol először hozzáadhatunk és tárolhatunk más elemeket (például több sort), mielőtt hozzáadnánk őket a DOM-fa kívánt csomópontjához (például egy asztalhoz).DocumentFragment
tárgy nem okoz semmilyen elrendezési változást, így annyi elemet adhat hozzá, amennyit csak akar, mielőtt továbbítaná őket a DOM-fára, és csak ezen a ponton változtatja meg az elrendezést.Szintaxis
document.createDocumentFragment ()
Kódpélda
createElement ()
módszerrel, majd adjuk hozzá a DocumentFragment
objektumot, végül adjunk hozzá egy HTML-dokumentumot használni a
AppendChild ()
eljárás.
var table = document.querySelector ("táblázat"); var df = document.createDocumentFragment (); a (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
ugyanaz a tulajdonság, de a getComputedStyle ()
A módszer csak erre a célra készült visszaadja a csak olvasható számított értékeket egy adott HTML elem összes CSS tulajdonságának.Szintaxis
var style = getComputedStyle (ele, [pseudoEle])
stílus
- A CSSStyleDeclaration
a módszer által visszaadott objektum. Tartalmaz minden CSS tulajdonságot és értékét ele
elem.ele
- A HTML-elem, amelyből a CSS tulajdonságértékek lekérésre kerülnek.pseudoEle
- (opcionális) Egy sztring, amely pszeudoelemet képvisel (például, ':után'
). Ha ez meg van említve, akkor a megadott pszeudoelem CSS tulajdonságai ele
vissza fog térni.Kódpélda
szélesség
értéke a getComputedStyle ()
eljárás.
var style = getComputedStyle (document.querySelector ('div')); riasztás (style.width);
13.
setAttribute ()
setAttribute ()
módszer új attribútumot ad hozzá egy HTML elemhez, vagy frissíti az értéket egy már létező attribútum.Szintaxis
ele.setAttribute (név, érték);
ele
- A HTML elem, amelyhez egy attribútum tartozik, vagy melyik attribútum frissül.név
- Az attribútum neve.érték
- Az attribútum értéke.Kódpélda
contenteditable
attribútum a setAttribute ()
módszer, amely a tartalom szerkeszthetővé válik. var div = document.querySelector ('div'); div.setAttribute (contenteditable ', ")
14.
getAttribute ()
getAttribute ()
eljárás visszaadja a megadott attribútum értékét egy bizonyos HTML elemhez tartozik.Szintaxis
ele.getAttribute (név);
ele
- Az attribútum HTML-eleme szükséges.név
- Az attribútum neve.Kódpélda
contenteditable
attribútum getAttribute ()
eljárás. var div = document.querySelector ('div'); riasztás (div.getAttribute ( 'contenteditable'))
15.
removeAttribute ()
removeAttribute ()
eljárás eltávolít egy adott attribútumot egy adott HTML elemből.Szintaxis
ele.removeAttribute (név);
ele
- Az attribútum HTML elemét el kell távolítani.név
- Az attribútum neve.Kódpélda
contenteditable
attribútum a var div = document.querySelector ('div'); div.removeAttribute ( 'contenteditable');