15 JavaScript metody pro DOM Manipulation pro webové vývojáře
Jako webový vývojář často potřebujete manipulovat s DOM, objektový model, který prohlížeče používají specifikujte logickou strukturu webových stránek, a na této struktuře vykreslení HTML prvků na obrazovce.
HTML definuje výchozí struktura DOM. V mnoha případech však budete chtít s tímto jazykem manipulovat pomocí JavaScriptu, obvykle tak, aby to bylo možné přidejte další funkce na stránky.
V tomto příspěvku najdete seznam 15 základních metod JavaScriptu že pomoc DOM manipulace. Pravděpodobně používáte tyto metody často ve vašem kódu, a budete také narazit do nich v našich cvičeních JavaScript.
1. querySelector ()
querySelector ()
metoda Vrací první prvek, který odpovídá jednomu nebo více selektorům CSS. Pokud není nalezena žádná shoda, vrátí se nula
.
Před querySelector ()
byla zavedena, vývojáři široce používali getElementById ()
metoda, která vyvolá prvek se zadaným id
hodnota.
Ačkoli getElementById ()
je stále užitečná metoda, ale s novější querySelector ()
a querySelectorAll ()
metody, které máme cílové prvky založené na libovolném voliči CSS, máme tedy větší flexibilitu.
Syntax
var ele = document.querySelector (selector);
ele
- První odpovídající prvek nebonula
(pokud žádný prvek neodpovídá selektorům)volič
- jeden nebo více CSS selektorů, jako je například"#fooId"
,".fooClassName"
,".class1.class2"
, nebo".class1, .class2"
Příklad kódu
V tomto příkladu první odstavce 1 odstavce 2 odstavce 3 Otestujte Na rozdíl od Odpovídající prvky jsou vráceny jako Níže uvedený příklad používá stejný HTML jako předchozí. V tomto příkladu jsou však vybrány všechny odstavce odstavce 1 odstavce 2 odstavce 3 Události odkazují na to, co se stane s elementem HTML, jako je kliknutí, zaostření nebo načítání, na které můžeme reagovat s JavaScriptem. Můžeme přiřadit JS funkce poslouchat pro tyto události v elementech a udělají něco, co se stalo. Existují tři způsoby, jak můžete přiřazení funkce určité události. Li Metoda Zastaví probublávání událostí, tj. Zabrání volání všech posluchačů událostí pro stejný typ události v předcích elementu. Chcete-li tuto funkci použít, můžete použít 2 syntaxe: Posluchač se nazývá pouze jednou, když se událost stane, pak se automaticky odpojí od události a už ji nebude spouštět. Výchozí akci události nelze zastavit metodou preventDefault (). V tomto příkladu přidáme posluchače události kliknutí Přiřaďte Používá stejnou syntaxi jako výše uvedené Podle příkladu kódu jsme použili Tento prvek můžete později přidat na webovou stránku pomocí jiného metody pro vložení DOM, jako Pomocí následujícího příkladu můžete vytvořit nový prvek odstavce: Dítě, které má být vloženo, může být buď nově vytvořený prvek, nebo již existující. Ve druhém případě bude přesunuta z předchozí pozice do pozice posledního dítěte. V tomto příkladu vložíme a V následující interaktivní demo, dopisy od Podívejte se, jak V tomto příkladu odstraníme V tomto příkladu podřízený prvek Když musíte vytvořit nový prvek, který musí být jako již existující prvek na webové stránce můžete jednoduše vytvořit kopii již existujícího prvku za použití V tomto příkladu vytvoříme kopii pro Jako výsledek, Pokud odkazovaný podřízený prvek neexistuje nebo předáte explicitně V tomto příkladu vytvoříme nový Toto interaktivní demo funguje podobně jako naše předchozí demo patřící k To vytvoří Proč nepřidáváme prvky přímo do stromu DOM? Protože vložení DOM způsobí změny rozvržení, a je to drahý proces prohlížeče protože více následných vložení prvků způsobí více změn rozvržení. Na druhou stranu přidávání prvků do V tomto příkladu vytvoříme více řádků tabulky a buněk pomocí V důsledku toho bude do tabulky vloženo pět řádků, z nichž každá obsahuje jednu buňku s číslem od 1 do 5 jako obsah.. Někdy chcete zkontrolujte hodnoty vlastností CSS před provedením jakýchkoli změn. Můžete použít V tomto příkladu dostaneme vypočítaný a upozorníme V tomto příkladu přidáme V tomto příkladu upozorňujeme na hodnotu V tomto příkladu odstraníme querySelector ()
a jeho barva se změní na červenou.
var firstDiv = document.querySelector ('div'); firstDiv.style.color = 'red';
Interaktivní ukázka
querySelector ()
v následující interaktivní ukázce. Stačí zadat selektor odpovídající těm, které najdete uvnitř modrých políček (např. #tři
) a klepněte na tlačítko Vybrat. Všimněte si, že pokud zadáte .blok
, pouze jeho první instanci bude vybráno.2.
querySelectorAll ()
querySelector ()
vrátí pouze první instanci všech odpovídajících prvků, querySelectorAll ()
vrátí všechny prvky, které odpovídají zadanému voliči CSS.Seznam uzlů
objekt, který bude prázdný objekt, pokud nebudou nalezeny žádné odpovídající prvky.Syntax
var eles = document.querySelectorAll (selector);
eles
- A Seznam uzlů
objekt se všemi odpovídajícími prvky jako hodnotami vlastností. Objekt není prázdný, pokud nejsou nalezeny žádné shody.volič
- jeden nebo více CSS selektorů, jako je například "#fooId"
, ".fooClassName"
, ".class1.class2"
, nebo ".class1, .class2"
Příklad kódu
querySelectorAll ()
, a jsou zbarveny modře.
var odstavce = document.querySelectorAll ('p'); for (var p odstavců) p.style.color = 'blue';
3.
addEventListener ()
foo ()
je vlastní funkce, můžete ji zaregistrovat jako posluchač události kliknutí (zavolejte na něj, když kliknete na prvek tlačítka) třemi způsoby:
var btn = document.querySelector ('tlačítko'); btn.onclick = foo;
var btn = document.querySelector ('tlačítko'); btn.addEventListener ('click', foo);
addEventListener ()
(třetí řešení) někteří profesionálové; je to nejnovější standard - umožňuje přiřazení více než jedné funkce jako posluchače událostí jedné události - a přichází s užitečnou sadou možností.Syntax
ele.addEventListener (evt, posluchač, [možnosti]);
ele
- Element HTML posluchač události bude poslouchat.evt
- Cílová událost.posluchač
- Obvykle funkce JavaScript.možností
- (nepovinné) Objekt se sadou booleovských vlastností (uveden níže).Možnosti Co se stane, když je nastaven skutečný
?zachycení
ele.addEventListener (evt, posluchač, true)
ele.addEventListener (evt, posluchač, capture: true);
jednou
pasivní
Příklad kódu
foo
, na HTML tag.
var btn = document.querySelector ('tlačítko'); btn.addEventListener ('click', foo); function foo () alert ('hello');
Interaktivní ukázka
foo ()
vlastní funkci jako posluchače událostí na kteroukoli ze tří následujících událostí: vstup
, klikněte
nebo přejet myší
& spusťte zvolenou událost v dolním vstupním poli vznášením, klepnutím nebo zadáním.4.
removeEventListener ()
removeEventListener ()
metoda odpojí posluchače událostí dříve přidané addEventListener ()
metoda z události, kterou poslouchá.Syntax
ele.removeEventListener (evt, posluchač, [možnosti]);
addEventListener ()
metoda (s výjimkou jednou
možnost, která je vyloučena). Možnosti jsou velmi specifické, pokud jde o identifikaci posluchače, který má být odpojen.Příklad kódu
addEventListener ()
, zde odstraníme posluchače události Click Click foo
od živel.
btn.removeEventListener ('click', foo);
5.
createElement ()
createElement ()
metoda vytvoří nový element HTML za použití název značky HTML být vytvořeny, jako například 'p'
nebo 'div'
.AppendChild ()
(viz později v tomto příspěvku).Syntax
document.createElement (tagName);
název štítku
- Název značky HTML, kterou chcete vytvořit. Příklad kódu
var pEle = document.createElement ('p')
6.
appendChild ()
appendChild ()
metoda přidá prvek jako poslední dítě elementu HTML, který tuto metodu vyvolá.Syntax
ele.appendChild (childEle)
ele
- Element HTML, ke kterému childEle
je přidán jako poslední dítě.childEle
- Prvek HTML přidán jako poslední dítě ele
.Příklad kódu
element je jako dítě
appendChild ()
a výše uvedené createElement ()
metody.
var div = document.querySelector ('div'); var strong = document.createElement ('silný'); strong.textContent = 'Dobrý den'; div.appendChild (silný);
Interaktivní ukázka
#A
na #r
jsou dětské prvky # parent-one
, # rodič-dva
, a # parent-tři
id voliče.appendChild ()
funguje do vstupních polí níže zadejte jeden nadřazený a jeden podřízený volič. Můžete si také vybrat děti patřící k jinému rodiči.7.
removeChild ()
removeChild ()
metoda odstraní zadaný podřízený prvek z elementu HTML, který tuto metodu volá.Syntax
ele.removeChild (childEle)
ele
- Nadřazený prvek childEle
.childEle
- Dětský prvek ele
.Příklad kódu
prvek jsme přidali jako dítě do
appendChild ()
metoda. div.removeChild (silný);
8.
replaceChild ()
replaceChild ()
metoda nahradí podřízený prvek jiným patřící k rodičovskému prvku, který tuto metodu volá.Syntax
ele.replaceChild (newChildEle, oldChileEle)
ele
- Rodičovský prvek, z něhož mají být děti nahrazeny.newChildEle
- Dětský prvek ele
nahradí oldChildEle
.oldChildEle
- Dětský prvek ele
, který bude nahrazen newChildEle
.Příklad kódu
patřící
štítek.
var em = document.createElement ('em'); var strong = document.querySelector ('silný'); var div = document.querySelector ('div'); em.textContent = 'hi'; div.replaceChild (em, silný);
9.
cloneNode ()
cloneNode ()
metoda.Syntax
var dupeEle = ele.cloneNode ([deep])
dupeEle
- Kopie ele
živel.ele
- Element HTML, který má být zkopírován.hluboký
- (nepovinné) Booleovská hodnota. Pokud je to nastaveno skutečný
, dupeEle
bude mít všechny podřízené prvky ele
má, pokud je nastavena Nepravdivé
bude klonován bez jeho dětí.Příklad kódu
prvek s
cloneNode ()
, pak to přidáme appendChild ()
metoda. prvky, oba s
Ahoj
řetězec jako obsah.
var strong = document.querySelector ('silný'); var copy = strong.cloneNode (true); var div = document.querySelector ('div'); div.appendChild (kopie);
10.
insertBefore ()
insertBefore ()
metoda přidá zadaný podřízený prvek před jiný podřízený prvek. Metoda je volána nadřazeným prvkem.nula
na jeho místo je přidán podřízený prvek, který má být vložen jako poslední dítě rodiče (podobný appendChild ()
).Syntax
ele.insertBefore (newEle, refEle);
ele
- Rodičovský prvek.newEle
- Nový HTML element, který má být vložen.refEle
- Dětský prvek ele
před kterým newEle
bude vložen.Příklad kódu
prvek s nějakým textem uvnitř a přidejte jej před
prvek uvnitř
var em = document.createElement ('em'); var strong = document.querySelector ('silný'); var div = document.querySelector ('div'); em.textContent = 'hi'; div.insertBefore (em, silný);
Interaktivní ukázka
appendChild ()
metoda. Zde stačí zadat id voliče dvou podřízených prvků (od #A
na #r
) do vstupních políček a můžete vidět, jak insertBefore ()
metoda přesune první zadané dítě před druhý.11.
createDocumentFragment ()
createDocumentFragment ()
metoda nemusí být tak dobře známá jako ostatní v tomto seznamu, nicméně je důležitá, zejména pokud chcete Vložit více prvků hromadně, například přidání více řádků do tabulky.DocumentFragment
objekt, který je v podstatě uzel DOM, který není součástí stromu DOM. Je to jako vyrovnávací paměť, kde můžeme nejdříve přidat a uložit další prvky (např. Více řádků), než je přidáme do požadovaného uzlu ve stromu DOM (např. Do tabulky).DocumentFragment
objekt nezpůsobuje žádné změny rozvržení, takže můžete do něj přidat libovolný počet prvků, které chcete před předáním do stromu DOM, což způsobí změnu rozvržení pouze v tomto bodě.Syntax
document.createDocumentFragment ()
Příklad kódu
createElement ()
a pak je přidejte do DocumentFragment
objekt, nakonec přidejte tento fragment dokumentu do HTML za použití
appendChild ()
metoda.
var table = document.querySelector ("tabulka"); var df = document.createDocumentFragment (); pro (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
k tomu, aby učinil totéž, avšak getComputedStyle ()
byla provedena právě pro tento účel vrací hodnoty pouze pro čtení všech vlastností CSS zadaného elementu HTML.Syntax
var style = getComputedStyle (ele, [pseudoEle])
styl
- A CSSStyleDeclaration
objekt vrácený metodou. Obsahuje všechny vlastnosti CSS a jejich hodnoty ele
živel.ele
- Prvek HTML, na kterém jsou načítány hodnoty vlastností CSS.pseudoEle
- (nepovinné) Řetězec, který představuje pseudo-prvek (například, ':po'
). Pokud je to zmíněno, pak jsou vlastnosti CSS specifikovaného pseudoprvku asociovány ele
bude vrácena.Příklad kódu
šířka
hodnota a getComputedStyle ()
metoda.
var style = getComputedStyle (document.querySelector ('div')); výstraha (style.width);
13.
setAttribute ()
setAttribute ()
metoda přidá nový atribut na element HTML, nebo aktualizuje hodnotu atributu, který již existuje.Syntax
ele.setAttribute (jméno, hodnota);
ele
- Element HTML, ke kterému je atribut přidán nebo který atribut je aktualizován.název
- Název atributu.hodnota
- Hodnota atributu.Příklad kódu
spokojený
atribut a setAttribute ()
metodu, která upraví její obsah. var div = document.querySelector ('div'); div.setAttribute ('contenteditable', ")
14.
getAttribute ()
getAttribute ()
metoda vrátí hodnotu zadaného atributu patřící do určitého elementu HTML.Syntax
ele.getAttribute (jméno);
ele
- Element HTML, jehož atribut je požadován.název
- Název atributu.Příklad kódu
spokojený
atribut patřící getAttribute ()
metoda. var div = document.querySelector ('div'); upozornění (div.getAttribute ('contenteditable'))
15.
removeAttribute ()
removeAttribute ()
metoda odstraní daný atribut specifického HTML elementu.Syntax
ele.removeAttribute (jméno);
ele
- Element HTML, který má být odebrán.název
- Název atributu.Příklad kódu
spokojený
atribut z var div = document.querySelector ('div'); div.removeAttribute ('contenteditable');