Nodelist je sbírka uzlů, která se vrací při použití metody querySelectorAll() nebo vlastnosti childNodes v JavaScriptu. Tento objekt má rozhraní podobné poli, ale neposkytuje metody pro přidání, odstranění nebo úpravu jeho prvků. Někdy je proto nutné vymazat NodeList, aby se uvolnila paměť nebo obnovila data.
Existuje několik způsobů, jak vyčistit nodelist. Jedním z nich je přeskupení všech prvků ve sbírce a jejich odstranění jeden po druhém. Lze využít cyklu for nebo while na tuhle operaci. Například:
let nodeList = document.querySelectorAll('.element');
Dalším způsobem je převod NodeList na pole pomocí metody Array.from() a použití metody forEach() odstranění prvků pole. Například:
let nodeList = document.querySelectorAll('.element');
let nodeArray = Array.from(nodeList);
Výběr metody odstranění závisí na vašich preferencích a situaci. Oba způsoby vám umožňují vymazat NodeList a uvolnit paměť a v případě potřeby aktualizovat data.
Co je Nodelist v JavaScriptu
NodeList v JavaScriptu je sbírka uzlů, která se vrací při dotazech na položky dokumentu pomocí metody querySelectorAll(). Uzly mohou být jakéhokoli typu, jako jsou prvky, textové uzly nebo komentáře, a mohou být odvozeny z dokumentu nebo z prvku.
NodeList je pseudo pole, což znamená, že je podobné masivu, ale nemá všechny metody a vlastnosti dostupné ve skutečném JavaScriptu pole. NodeList však umožňuje přistupovat ke každému uzlu indexem a provádět některé operace nad nimi.
NodeList je zvláště užitečný, když je nutné provádět operace na konkrétních položkách nebo na ně aplikovat styly. Automaticky se také aktualizuje, pokud se dokument změní, takže NodeList bude vždy obsahovat aktuální uzly.
Pokud je však nutné odstranit všechny položky z NodeList nebo je vyčistit, použijte cyklus for nebo forEach() může to být malá výzva. Pro tyto účely lze pomocí metody použít převod NodeList na skutečné pole Array.from() nebo distribučního operátora [. nodelist] abyste získali všechny výhody práce s polem.
Jak získat NodeList v JavaScriptu
Existuje několik způsobů, jak získat NodeList:
1. Metoda querySelectorAll()
Metoda querySelectorAll () je vyvolána na objektu document nebo na jakékoli položce a vrací NodeList obsahující všechny prvky odpovídající zadanému selektoru CSS.
var elements = document.querySelectorAll('.my-class');
2. Vlastnost childNodes
Vlastnost childNodes vrací nodelist obsahující všechny podřízené uzly uvedené položky. Podřízenými uzly mohou být prvky, text, komentáře atd.
var elements = parentElement.childNodes;
3. Vlastnost children
Vlastnost children vrací HTMLCollection obsahující pouze podřízené uzly-prvky uvedené položky. Ignoruje všechny ostatní typy uzlů, jako je text a komentáře.
var elements = parentElement.children;
4. Metoda getelementsbytagname()
Metoda getElementsByTagName () je vyvolána na položce document nebo na kterékoli položce a vrací HTMLCollection obsahující všechny položky se zadanou značkou.
var elements = document.getElementsByTagName('p');
Každá z těchto metod poskytuje NodeList nebo HTMLCollection, které lze použít k provádění různých manipulací s prvky webové stránky.
Poznámka: Nodelist a HTMLCollection jsou "živé", což znamená, že se mohou měnit podle změn na stránce. Proto se při získání Nodelistu doporučuje vytvořit jeho kopii, aby byl zachován jeho stav.
Funkce práce s NodeList v JavaScriptu
Hlavní rysy práce s NodeList:
- Implicitní aktualizace: při změně struktury DOM se změny automaticky odrážejí v NodeList, i když byly získány dříve. To je užitečné, pokud například potřebujete získat dynamicky přidané prvky.
- Index-based přístup: k prvkům NodeList lze přistupovat podle indexu pomocí čtvercových závorek, například, nodeList[0]. NodeList přitom není pole, ale podporuje vlastnost length a metoda item(index), který také umožňuje přístup k prvkům.
- Live-kolekce: Nodelist je "živá" kolekce, což znamená, že se automaticky aktualizuje při změně DOM. To je způsobeno bodem 1, ale může také způsobit problémy, pokud během provádění kódu dochází k častým změnám.
- Alternativní transformace do pole: v případě potřeby lze nodelist převést na normální pole pomocí metod transformace polí, jako jsou Array.from nebo distribuční operátor [. nodeList]. Taková konverze je užitečná, pokud potřebujete použít metody polí, které nejsou k dispozici pro NodeList.
Při práci s NodeList je důležité vzít v úvahu tyto vlastnosti, abyste dosáhli požadovaného výsledku a vyhnuli se nežádoucím chybám.