15 metód JavaScript pre manipuláciu DOM pre vývojárov webu
Ako webový vývojár musíte často manipulovať DOM, objektový model, ktorý používajú prehliadače špecifikujte logickú štruktúru webových stránok a na základe tejto štruktúry vykresliť prvky HTML na obrazovke.
HTML definuje predvolená štruktúra DOM. Avšak v mnohých prípadoch možno budete chcieť manipulovať s JavaScript, zvyčajne za účelom pridať ďalšie funkcie na miesto.
V tomto príspevku nájdete zoznam 15 základných metód JavaScript že manipulácia DOM pomoci. Pravdepodobne by ste často používali tieto metódy vo svojom kóde a takisto ich narazíte do našich tutoriálov v jazyku JavaScript.
1. querySelector ()
querySelector ()
metóda vráti prvý prvok, ktorý sa zhoduje s jedným alebo viacerými selektormi CSS. Ak sa nenájde žiadna zhoda, vráti sa nulový
.
pred querySelector ()
bol predstavený, vývojári široko používajú getElementById ()
metóda, ktorá načíta prvok s určeným id
hodnota.
Hoci getElementById ()
je stále užitočnou metódou, ale s novším querySelector ()
a querySelectorAll ()
metódy, ktoré sme slobodní cieľové prvky založené na ľubovoľnom prepínači CSS, preto máme väčšiu flexibilitu.
syntax
var ele = dokument.querySelektor (volič);
ele
- Prvý zodpovedajúci prvok alebonulový
(ak sa žiadny prvok nezhoduje s voličmi)volič
- jeden alebo viac voličov CSS, ako napr"#FooId"
,".FooClassName"
,".Class1.class2"
, alebo".class1, .class2"
Príklad kódu
V tomto príklade je prvý prvý odsek druhý odsek odsek 3 Otestujte na rozdiel od Súvisiace prvky sa vrátia ako Nižšie uvedený príklad používa rovnaký kód HTML ako predošlý. V tomto príklade sú však všetky odstavce vybraté pomocou prvý odsek druhý odsek odsek 3 Diania pozrite sa na to, čo sa stane s prvkom HTML, ako je kliknutie, zaostrovanie alebo načítanie, s ktorým môžeme reagovať pomocou jazyka JavaScript. Môžeme priradiť funkcie JS počúvať pre tieto udalosti v prvkoch a urobte niečo, keď sa udalosť vyskytla. Existujú tri spôsoby, ako môžete priradiť určitú udalosť. ak Metóda Zastaví prebublávanie udalostí, t. J. Zabraňuje volať žiadnym poslucháčom udalostí pre ten istý typ udalosti v predkoch prvku. Ak chcete použiť túto funkciu, môžete použiť 2 syntaxy: Listener sa volá iba pri prvom podaní udalosti, potom sa automaticky oddelí od udalosti a už ho nebude spúšťať. Predvolenú akciu udalosti nemožno zastaviť metódou preventDefault (). V tomto príklade pridáme poslucháč pre udalosť kliknutia s názvom Priraďte Používa rovnakú syntax ako vyššie uvedené Po príklade kódu sme použili reťazec Tento článok môžete neskôr pridať na webovú stránku pomocou iného metódy pre vkladanie DOM, ako napr Nasledujúcim príkladom môžete vytvoriť nový prvok odseku: Dieťa, ktoré sa má vložiť, môže byť buď a novo vytvorený prvok, alebo an už existuje. V druhom prípade sa presunie z predchádzajúcej pozície do pozície posledného dieťaťa. V tomto príklade vkladáme a V nasledujúcom interaktívnom demo, listy od Pozrite sa, ako V tomto príklade sme odstránili V tomto príklade je podradený prvok Keď musíte vytvoriť nový prvok, ktorý musí byť rovnaký ako už existujúci prvok na webovej stránke môžete jednoducho vytvorte kópiu už existujúceho prvku pomocou V tomto príklade vytvoríme kópiu pre Ako výsledok, Ak odkazovaný podriadený prvok neexistuje alebo prejdete explicitne V tomto príklade vytvoríme nový Táto interaktívna demo funguje podobne ako naše predchádzajúce demo, ktoré patrí k to vytvára a Prečo nepridávame iba prvky priamo do stromu DOM? Pretože vkladanie DOM spôsobuje zmeny usporiadania, a je to drahý proces prehliadača pretože vkladanie viacerých následných prvkov spôsobí väčšie zmeny rozloženia. Na druhej strane, pridávanie prvkov k a V tomto príklade vytvoríme viacero riadkov a buniek tabuľky s V dôsledku toho sa do tabuľky vloží päť riadkov - z ktorých každá obsahuje jednu bunku s číslom od 1 do 5 ako obsah -. Niekedy to chcete skontrolujte hodnoty vlastností CSS prvku pred vykonaním akýchkoľvek zmien. Môžete použiť V tomto príklade dostaneme a upozorníme vypočítané V tomto príklade pridáme V tomto príklade upozorňujeme na hodnotu V tomto príklade sme odstránili querySelector ()
a jeho farba sa zmení na červenú.
var prvýDiv = document.querySelector ('div'); firstDiv.style.color = 'červená';
Interaktívna demo
querySelector ()
v nasledujúcej interaktívnej demo. Jednoducho napíšte selektor, ktorý sa zhoduje s tými, ktoré nájdete v modrých poliach (napr. #three
) a kliknite na tlačidlo Vybrať. Všimnite si, že keď píšete .blok
, iba jeho prvej inštancie bude vybratá.2.
querySelectorAll ()
querySelector ()
ktorý vráti iba prvú inštanciu všetkých zodpovedajúcich prvkov, querySelectorAll ()
vráti všetky prvky, ktoré zodpovedajú zadanému prepínaču CSS.NodeList
objekt, ktorý bude prázdny objekt, ak sa nenájdu žiadne zodpovedajúce prvky.syntax
var eles = document.querySelectorAll (selektor);
ELES
- NodeList
objekt so všetkými zodpovedajúcimi prvkami ako hodnotami vlastností. Objekt je prázdny, ak sa nenájdu žiadne zhody.volič
- jeden alebo viac voličov CSS, ako napr "#FooId"
, ".FooClassName"
, ".Class1.class2"
, alebo ".class1, .class2"
Príklad kódu
querySelectorAll ()
, a sú modrej farby.
var odseky = document.querySelectorAll ('p'); pre (var p odsekov) p.style.color = 'modrá';
3.
addEventListener ()
foo ()
je vlastná funkcia, môžete ju zaregistrovať ako poslucháč kliknutia (volajte ho po kliknutí na prvok tlačidla) tromi spôsobmi:
var btn = dokument.querySelektor ('tlačidlo'); btn.onclick = foo;
var btn = dokument.querySelektor ('tlačidlo'); btn.addEventListener ('kliknite', foo);
addEventListener ()
(tretie riešenie) niektorí profesionáli; je to najnovší štandard - umožňuje priradiť viac ako jednu funkciu ako poslucháči udalosti jednej udalosti - a prichádza s užitočnou sadou možností.syntax
ele.addEventListener (evt, poslucháč, [možnosti]);
ele
- Prvok HTML, ktorému bude počúvať poslucháč, bude počúvať.evt
- Cieľová udalosť.poslucháč
- Typicky je to funkcia JavaScript.možnosti
- (voliteľné) Objekt s množinou booleovských vlastností (uvedené nižšie).možnosti Čo sa stane, keď je nastavené pravdivý
?zajatí
ele.addEventListener (evt, listener, true)
ele.addEventListener (evt, poslucháč, capture: true);
akonáhle
pasívny
Príklad kódu
foo
, na Značku HTML.
var btn = dokument.querySelektor ('tlačidlo'); btn.addEventListener ( 'cvaknutie', foo); funkcia foo () alert ('hello');
Interaktívna demo
foo ()
vlastná funkcia ako poslucháč udalostí ktorejkoľvek z nasledujúcich troch udalostí: vstup
, cvaknutie
alebo mouseover
& spúšťať zvolenú udalosť v spodnom vstupnom poli posunutím, kliknutím alebo napísaním.4.
removeEventListener ()
removeEventListener ()
metóda oddeľuje poslucháča udalosti predtým pridané s addEventListener ()
metóda z udalosti, ktorú počúva.syntax
ele.removeEventListener (evt, poslucháč, [možnosti]);
addEventListener ()
metóda (okrem akonáhle
možnosť, ktorá je vylúčená). Možnosti slúžia na to, aby boli veľmi špecifické, pokiaľ ide o identifikáciu odpojeného poslucháča.Príklad kódu
addEventListener ()
, tu odstránime poslucháča udalosti kliknutia nazvaného foo
z element.
btn.removeEventListener ( 'cvaknutie', foo);
5.
createElement ()
createElement ()
metóda vytvára nový prvok HTML pomocou názov značky HTML ako napr 'P'
alebo 'Div'
.AppendChild ()
(pozri neskôr v tomto príspevku).syntax
document.createElement (tagname);
tagname
- Názov značky HTML, ktorú chcete vytvoriť. Príklad kódu
var pEle = document.createElement ('p')
6.
appendChild ()
appendChild ()
metóda pridá prvok ako posledné dieťa na prvok HTML, ktorý vyvolá túto metódu.syntax
ele.appendChild (childEle)
ele
- Element HTML, ku ktorému childEle
ako posledné dieťa.childEle
- Prvok HTML bol pridaný ako posledné dieťa ele
.Príklad kódu
prvok je ako dieťa
appendChild ()
a vyššie uvedené createElement ()
metódy.
var div = dokument.querySelector ("div"); var silný = document.createElement ('silný'); strong.textContent = 'Ahoj'; div.appendChild (silný);
Interaktívna demo
#A
na #r
sú detskými prvkami # Rodič-one
, # Rodič-two
, a # Rodič tri
id.appendChild ()
metóda funguje zadaním jedného nadradeného a jedného podradeného mena do nižšie zadaných polí. Môžete si vybrať aj deti patriace k inému rodičovi.7.
removeChild ()
removeChild ()
metóda odstráni špecifikovaný podriadený prvok z elementu HTML, ktorý volá túto metódu.syntax
ele.removeChild (childEle)
ele
- Rodičovský prvok childEle
.childEle
- Detský prvok ele
.Príklad kódu
element, ktorý sme pridali ako dieťa do
appendChild ()
metóda. div.removeChild (silný);
8.
replaceChild ()
replaceChild ()
metóda nahrádza detský prvok za iný ktorý patrí k nadradenému prvku, ktorý volá túto metódu.syntax
ele.replaceChild (newChildEle, oldChileEle)
ele
- Rodičovský prvok, z ktorého majú byť deti nahradené.newChildEle
- Detský prvok z ele
ktoré nahradí oldChildEle
.oldChildEle
- Detský prvok z ele
, ktoré budú nahradené newChildEle
.Príklad kódu
patriace k
štítok.
var em = dokument.createElement ('em'); var silný = document.querySelector ('silný'); var div = dokument.querySelector ("div"); em.textContent = 'hi'; div.replaceChild (em, silný);
9.
cloneNode ()
cloneNode ()
metóda.syntax
var dupeEle = ele.cloneNode ([hlboký])
dupeEle
- Kópia súboru ele
element.ele
- Prvok HTML, ktorý sa má kopírovať.hlboký
- (voliteľné) Booleovská hodnota. Ak je nastavené pravdivý
, dupeEle
bude mať všetky detské prvky ele
má, ak je nastavený nepravdivý
bude klonovaný bez svojich detí.Príklad kódu
element s
cloneNode ()
, potom ju pridáme do appendChild ()
metóda. prvky, oba s
Ahoj
reťazec ako obsah.
var silný = document.querySelector ('silný'); var kópia = strong.cloneNode (pravda); var div = dokument.querySelector ("div"); div.appendChild (kópie);
10.
insertBefore ()
insertBefore ()
metóda pridá predpísaný podriadený prvok pred iným podriadeným prvkom. Metóda sa nazýva materským prvkom.nulový
na svojom mieste sa pridá detský prvok, ktorý má byť vložený ako posledné dieťa rodiča (podobný appendChild ()
).syntax
ele.insertBefore (newEle, refEle);
ele
- Rodičovský prvok.Newel
- Nový element HTML, ktorý sa má vložiť.refEle
- Detský prvok ele
pred ktorou Newel
bude vložený.Príklad kódu
prvku s nejakým textom vo vnútri a pridajte ho pred
prvok vo vnútri
var em = dokument.createElement ('em'); var silný = document.querySelector ('silný'); var div = dokument.querySelector ("div"); em.textContent = 'hi'; div.insertBefore (em, strong);
Interaktívna demo
appendChild ()
metóda. Tu stačí zadať selektory id dvoch podradených prvkov (od #A
na #r
) do vstupných polí a môžete vidieť, ako insertBefore ()
metóda presunie prvé zadané dieťa pred druhy.11.
createDocumentFragment ()
createDocumentFragment ()
metóda nemusí byť tak dobre známa ako ostatné v tomto zozname, je však dôležitá, najmä ak chcete vložte hromadne viaceré prvky, ako napríklad pridanie viacerých riadkov do tabuľky.DocumentFragment
objekt, čo je v podstate uzol DOM, ktorý nie je súčasťou stromu DOM. Je to ako vyrovnávacia pamäť, kde môžeme najskôr pridať a ukladať ďalšie prvky (napríklad viac riadkov) pred tým, ako ich pridáme do požadovaného uzla v strome DOM (napríklad do tabuľky).DocumentFragment
objekt nespôsobuje žiadne zmeny rozloženia, takže môžete pridať toľko prvkov, ako chcete predtým, než ich odovzdáte do stromu DOM, čo spôsobí zmenu rozloženia iba v tomto okamihu.syntax
document.createDocumentFragment ()
Príklad kódu
createElement ()
a potom ich pridajte do poľa DocumentFragment
objekt, konečne pridajte tento fragment dokumentu do HTML pomocou
appendChild ()
metóda.
var tab = document.querySelector ("tabuľka"); var df = dokument.createDokumentFragment (); pre (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
vlastnosť urobiť to isté, ale getComputedStyle ()
metóda bola urobená len na tento účel, to vráti vypočítané hodnoty iba na čítanie všetkých vlastností CSS určeného prvku HTML.syntax
var štýl = getComputedStyle (ele, [pseudoEle])
štýl
- CSSStyleDeclaration
objekt vrátený metódou. Obsahuje všetky vlastnosti CSS a ich hodnoty ele
element.ele
- Element HTML, ktorého hodnoty vlastností CSS sú načítané.pseudoEle
- (voliteľné) Reťazec, ktorý predstavuje pseudo-prvok (napríklad, ,: Po '
). Ak je to uvedené, potom vlastnosti CSS zadaného pseudo-elementu spojené ele
bude vrátená.Príklad kódu
šírka
hodnota a getComputedStyle ()
metóda.
var štýl = getComputedStyle (document.querySelector ('div')); alert (style.width);
13.
setAttribute ()
setAttribute ()
metóda pridá nový atribút na prvok HTML, alebo aktualizuje hodnotu atribútu, ktorý už existuje.syntax
ele.setAttribute (názov, hodnota);
ele
- Prvok HTML, ku ktorému sa pridáva atribút alebo ktorého atribút je aktualizovaný.názov
- Názov atribútu.hodnota
- Hodnota atribútu.Príklad kódu
contenteditable
atribút a setAttribute ()
metóda, ktorá zmení svoj obsah upraviteľný. var div = dokument.querySelector ("div"); div.setAttribute ( 'contenteditable' ")
14.
getAttribute ()
getAttribute ()
metóda vráti hodnotu zadaného atribútu patriacim k určitému prvku HTML.syntax
ele.getAttribute (meno);
ele
- Element HTML, ktorého atribút sa požaduje.názov
- Názov atribútu.Príklad kódu
contenteditable
atribút patriaci do getAttribute ()
metóda. var div = dokument.querySelector ("div"); alert (div.getAttribute ( 'contenteditable'))
15.
removeAttribute ()
removeAttribute ()
metóda odstráni daný atribút konkrétneho prvku HTML.syntax
ele.removeAttribute (meno);
ele
- Element HTML, ktorého atribút sa má odstrániť.názov
- Názov atribútu.Príklad kódu
contenteditable
atribút z var div = dokument.querySelector ("div"); div.removeAttribute ( 'contenteditable');