HTML Dokumenty a prvky

HTML Dokumenty a prvky

HTMLDocument je vstupní bod směřující k značkování: parsuje kompletní stránky nebo fragmenty do DOM stromů, jejichž elementy jsou typizovány — <a> se stane HTMLAnchorElement, <input> se HTMLInputElement — takže chování specifické pro elementy žije v třídách specifických pro elementy.


Parsování stránek a fragmentů

HTMLDocument.parse() spotřebuje kompletní stránku; HTMLDocument.parse_fragment() zpracovává částečné značkování; HTMLDocument.load() čte ze zdroje. Výsledek je standardní DOM strom, na kterém operují všechny ostatní vrstvy (CSSOM, selektory, layout).

Typizované třídy elementů

Hierarchie elementů pochází od HTMLElement. Ovládací prvky formulářů jsou modelovány pomocí HTMLFormElement, HTMLInputElement, HTMLButtonElement, HTMLSelectElement, HTMLTextAreaElement, HTMLOptionElement a HTMLFieldSetElement; vložený obsah pomocí HTMLImageElement, HTMLIFrameElement, HTMLEmbedElement, HTMLObjectElement a HTMLCanvasElement; navigace pomocí HTMLAnchorElement, HTMLAreaElement a HTMLMapElement.

Pomocníci pro vkládání elementů

Mimo základní operace Node nabízí Element vkládání s ohledem na pozici: insert_adjacent_html(), insert_adjacent_text() a insert_adjacent_element() umísťují obsah relativně k existujícímu elementu bez ručního sledování sourozenců.

Collections

HTMLCollection a HTMLOptionsCollection poskytují živé pohledy pouze na elementy, které používají API dokumentu a formulářů, spolu s obecnějším NodeList.


Tipy a osvědčené postupy

  • Použijte parse_fragment() pro úryvky — aplikuje pravidla parsování fragmentů místo obnovy celého dokumentu.
  • Spoléhejte se na typované třídy, když potřebujete stav specifický pro element (zejména ovládací prvky formulářů), místo aby se vše považovalo za obecný Element.
  • Upřednostňujte insert_adjacent_html() pro lokalizovaná vkládání místo přestavování podstromů.

Běžné problémy

ProblémPříčinaOprava
Při parsování fragmentu se přidávají obaly html/bodyPoužito parse() na částečném značkováníPoužijte parse_fragment()
Element postrádá specifické členy formulářeUzel typován jako obecný ElementPotvrďte, že značka byla rozparsována jako očekávaná třída elementu
Vložený značkový kód končí na špatném místěŠpatné klíčové slovo pozice pro sousední vloženíZkontrolujte čtyři standardní pozice

FAQ

Jaký je rozdíl mezi parse a parse_fragment?

parse() provádí konstrukci stromu celého dokumentu; parse_fragment() používá algoritmus fragmentu ohraničený kontextovým prvkem — správný nástroj pro částečné značkování.

Jsou třídy elementů standardně typované?

Ano — parsování vytváří typované třídy (HTMLAnchorElement, HTMLInputElement a zbytek rodiny HTMLElement), nikoli obecné uzly.

Mohu kombinovat výstup HTMLDocument s vrstvou CSSOM?

Ano — parsovaný strom je běžný DOM; připojte stylové listy a čtěte vypočtené styly jako obvykle.


API Reference Shrnutí

Třída/MetodaPopis:
HTMLDocument.parseRozparsovat kompletní stránku
HTMLDocument.parse_fragmentAnalyzovat částečné značkování
HTMLDocument.loadNačíst dokument ze zdroje
HTMLElementZákladní třída hierarchie typovaných elementů
HTMLFormElementPrvek kontejneru formuláře
HTMLCanvasElementprvek canvas
Element.insert_adjacent_htmlVkládání značek s rozpoznáním polohy

Viz také:

 Čeština