Manipulim i pastër JavaScript DOM. Hyrje metodat e objektit dom
Modeli i Objektit të Dokumentit, ose "DOM", është një ndërfaqe programimi për të hyrë në elementet e faqeve të internetit. Në thelb, është një API faqe që ju lejon të lexoni dhe manipuloni përmbajtjen, strukturën dhe stilet e një faqeje. Le të shohim se si funksionon dhe si funksionon.
Si ndërtohet një faqe në internet?
Procesi i shndërrimit të dokumentit origjinal HTML në një faqe të stilizuar dhe interaktive të dhënë quhet "Shtegu Kritik i Renderingut". Megjithëse ky proces mund të ndahet në hapa të shumtë, siç e përshkrova te Kuptimi i Rrugës Kritike të Renderingut, këto hapa mund të grupohen afërsisht në dy hapa. Në të parën, shfletuesi analizon dokumentin për të përcaktuar se çfarë do të shfaqet përfundimisht në faqe, dhe në të dytën, shfletuesi jep.
Rezultati i fazës së parë është ajo që quhet "pema e dhënë". Bëni pemën Shtë një përfaqësim i elementeve HTML që do të shfaqen në faqe dhe stilet e tyre të lidhura. Për të ndërtuar këtë pemë, shfletuesit i duhen dy gjëra:
- CSSOM, prezantimi i stileve të shoqëruara me elemente
- DOM, përfaqësimi i elementeve
Nga çfarë është bërë DOM?
DOM është përfaqësimi i objektit të dokumentit origjinal HTML. Ka disa ndryshime, siç do të shohim më poshtë, por në thelb është një përpjekje për të transformuar strukturën dhe përmbajtjen e një dokumenti HTML në një model të objektit që mund të përdoret nga programe të ndryshme.
Struktura e objekteve DOM përfaqësohet nga ajo që quhet "pema e nyjeve". Quhet kështu sepse mund të mendohet si një pemë me një prind të vetëm që degëzohet në shumë degë të fëmijëve, secila prej tyre mund të ketë gjethe. Në këtë rast, "elementi" prind është elementi rrënjësor, "degët" e fëmijës janë elementët e vendosur, dhe "gjethet" janë përmbajtja brenda elementeve.
Le të marrim këtë dokument HTML si një shembull:
Përshendetje Botë!
Si jeni?
Ky dokument mund të përfaqësohet si pema e nyjeve vijuese:
- html
- kokë
- titulli
- Uebfaqja ime e parë
- titulli
- trupi
- h1
- Përshendetje Botë!
- f
- Si jeni?
- h1
- kokë
Çfarë nuk është DOM
Në shembullin e mësipërm, DOM duket të jetë një hartë 1: 1 e dokumentit origjinal HTML. Sidoqoftë, siç thashë, ka dallime. Për të kuptuar plotësisht se çfarë është DOM, duhet të hedhim një vështrim në atë që nuk është.
DOM nuk është një kopje e HTML origjinale
Edhe pse DOM është krijuar nga një dokument HTML, nuk është gjithmonë saktësisht i njëjtë. Ka dy raste në të cilat DOM mund të ndryshojë nga HTML origjinal.
1. Kur HTML përmban gabime të shënjimit
DOM është ndërfaqja për hyrjen në elementet aktuale (d.m.th. të dhëna tashmë) të një dokumenti HTML. Në procesin e krijimit të DOM, vetë shfletuesi mund të korrigjojë disa gabime në kodin HTML.
Konsideroni këtë dokument HTML si një shembull:
Përshendetje Botë!
Dokumentit i mungojnë elementet
dhe e cila është e domosdoshme për HTML. Por nëse shohim pemën DOM që rezulton, mund të shohim se kjo është rregulluar:- html
- kokë
- trupi
- Përshendetje Botë!
2. Kur DOM modifikohet nga Javascript
Përveç që është një ndërfaqe për shikimin e përmbajtjes së një dokumenti HTML, vetë DOM mund të modifikohet gjithashtu.
Mund të krijojmë, për shembull, nyje shtesë për DOM duke përdorur Javascript.
Var newParagraph \u003d document.createElement ("p"); var paragrafi Përmbajtja \u003d document.createTextNode ("Unë" jam i ri! "); newParagraph.appendChild (paragrafi Përmbajtja); document.body.appendChild (newParagraph);
Ky kod do të ndryshojë DOM, por ndryshimet nuk do të shfaqen në dokumentin HTML.
DOM nuk është ajo që shihni në shfletues (d.m.th. pema e pasqyrimit)
Në pamjen e shfletuesit, ju shihni pemën e pasqyrimit, e cila, siç thashë, është një kombinim i DOM dhe CSSOM. Dallimi midis DOM dhe pemës së dhënies është se kjo e fundit përbëhet vetëm nga ajo që përfundimisht do të shfaqet në ekran.
Meqenëse pema e pasqyrimit ka të bëjë vetëm me atë që shfaqet, ajo përjashton elementet që janë fshehur vizualisht. Për shembull, elementet që kanë stile me ekran: asnjë.
Përshendetje Botë!
DOM do të përfshijë elementin
- html
- kokë
- trupi
- h1
- Përshendetje Botë!
- f
- Si jeni?
- h1
Sidoqoftë, pema e pasqyrimit, dhe për këtë arsye ajo që është e dukshme në pamjen e shikimit, nuk do të përfshihet në këtë artikull.
- html
- trupi
- h1
- Përshendetje Botë!
- h1
- trupi
DOM nuk është ajo që shfaqet në DevTools
Ky ndryshim është pak më i vogël sepse Inspektori i Elementeve DevTools siguron përafrimin më të afërt me DOM që kemi në një shfletues. Sidoqoftë, inspektori i DevTools përmban informacion shtesë që nuk është në DOM.
Shembulli më i mirë i kësaj është pseudo-elementet CSS. Pseudo-elementet e krijuara duke përdorur selektorët :: para dhe :: pasjanë pjesë e CSSOM dhe japin pemën, por nuk janë teknikisht pjesë e DOM. Kjo sepse DOM gjenerohet vetëm nga dokumenti origjinal HTML, duke mos përfshirë stilet e aplikuara në element.
Megjithëse pseudo-elementet nuk janë pjesë e DOM, ato janë në inspektorin tonë të elementeve devtools.
Përmbledhje
DOM është ndërfaqja e një dokumenti HTML. Përdoret nga shfletuesit si hapi i parë për të përcaktuar se çfarë të jepet në pamjen e parë dhe nga kodi Javascript për të ndryshuar përmbajtjen, strukturën ose stilin e faqes.
DOM shpesh quhet pema DOM sepse është e përbërë nga një pemë e objekteve të quajtura nyje. Në mësuat se çfarë është Modeli i Objektit të Dokumentit (DOM), si të hyni në objektin e dokumentit dhe të ndryshoni vetitë e tij duke përdorur konsolën, ne gjithashtu mësuam ndryshimin midis HTML dhe kodit burimor DOM.
Në këtë manual, ju do të gjeni terminologjinë HTML që ju nevojitet për të punuar me JavaScript dhe DOM, të mësoni se çfarë janë një pemë dhe nyje DOM, dhe të mësoni se si të identifikoni llojet më të zakonshme të nyjeve. Ju gjithashtu mund të krijoni një program JavaScript në tastierë për të modifikuar në mënyrë interaktive DOM.
Terminologjia HTML
Kuptimi i termave HTML dhe JavaScript është thelbësor për të punuar me DOM. Le të hedhim një vështrim të shpejtë në termat themelorë.
Shikoni këtë element HTML:
Shtëpi
Ai përmban një spirancë, e cila është një lidhje me index.html.
- a - etiketë
- href - atribut
- html - vlera e atributit
- Home - teksti.
Gjithçka midis etiketave hapëse dhe mbyllëse përbën një element HTML.
Le të kthehemi te skedari index.html nga udhëzimi i mëparshëm:
Modeli i objektit të dokumentit
Mënyra më e lehtë për të hyrë në një element me JavaScript është me atributin id. Le të shtojmë lidhjen e mësipërme në skedarin tonë index.html me id \u003d "nav".
...
Modeli i objektit të dokumentit
Shtëpi
...
Ngarko (ose rifresko) faqen në një dritare të shfletuesit dhe shiko DOM për t'u siguruar që kodi është azhurnuar.
Pastaj përdorni metodën getElementById () për të hyrë në të gjithë elementin. Vendosni sa vijon në tastierë:
dokument.getElementById ("nav");
Shtëpi
Metoda getElementById () do të rimarrë të gjithë elementin. Tani, në vend që të duhet të fusni këtë objekt dhe metodë sa herë që keni nevojë për të hyrë në lidhjen nav, ju mund ta vendosni elementin në një ndryshore për ta bërë më të lehtë punën me të.
le të navLink \u003d document.getElementById ("nav");
Ndryshorja navLink përmban spirancën. Këtu ju lehtë mund të ndryshoni atributet dhe vlerat. Për shembull, për të ndryshuar vendndodhjen e lidhjes, ndryshoni atributin href:
navLink.href \u003d "https://www.wikipedia.org";
Ju gjithashtu mund të ndryshoni tekstin duke rivendosur pronën e tekstit Përmbajtja:
navLink.textContent \u003d "Shkoni te Wikipedia";
Tani, duke parë këtë element në tastierë ose duke kontrolluar etiketën Elements, mund të shihni se si është azhurnuar.
navLink;
Navigo tek Wikipedia
Ndryshimet do të pasqyrohen edhe në pjesën e përparme.
Rifreskimi i faqes do të kthejë të gjitha vlerat origjinale.
Në këtë pikë, ju duhet të kuptoni se si të përdorni metodën e dokumentit për të hyrë në një element, si t'i caktoni një element një ndryshore dhe si të ndryshoni vetitë dhe vlerat në një element.
Pema dhe nyjet DOM
Të gjithë elementët në DOM përcaktohen si nyje. Ka shumë lloje të nyjeve, por ka tre kryesore me të cilat do të punoni më shpesh:
- Nyja e elementit
- Nyja e tekstit
- Nyja e komentit
Kur një element HTML është një element në DOM, ai quhet një nyje e elementit. Çdo tekst i vetëm jashtë një elementi është një nyje teksti, dhe një koment HTML është një nyje komenti. Përveç këtyre tre llojeve të nyjeve, objekti i dokumentit në vetvete është një nyje e dokumentit, e cila është nyja rrënjësore e të gjitha nyjeve të tjera.
DOM përbëhet nga një strukturë peme e nyjeve të vendosura, shpesh të referuara si pema DOM. Ju ndoshta e dini se çfarë është trungu familjar - është një paraqitje skematike e lidhjeve familjare, e cila përbëhet nga prindër, fëmijë dhe të afërm. Nyjet në DOM quhen gjithashtu prind dhe fëmijë bazuar në marrëdhëniet e tyre me nyjet e tjera.
Për shembull, krijoni një skedar nyjet.html. shtoni një nyje teksti në të, si dhe nyjet e komenteve dhe elementeve.
Një nyje e elementit
Një nyje teksti.
Nyja e elementit html është prindi. koka dhe trupi janë nyje fëmijë të html. trupi përmban tre nyje fëmijësh dhe të gjithë janë në të njëjtin nivel - lloji i nyjes nuk ndikon në nivelin e folezimit.
shënim: Kur punoni me HTML të krijuar nga DOM, dhëmbëzimi i burimit HTML krijon shumë nyje të zbrazëta të tekstit që nuk do të duken në skedën Elementet e DevTools. Më shumë rreth kësaj në linkun.
Përcaktimi i llojit të nyjes
Çdo nyje në një dokument ka një lloj, i cili arrihet përmes vetisë nodeType. Rrjeti i Zhvilluesve Mozilla ka një listë të azhurnuar të të gjitha konstanteve të llojit të nyjeve. Më poshtë është një tabelë e llojeve më të zakonshme të nyjeve.
Në skedën Elemente në Veglat e Zhvilluesit, mund të vini re se sa herë që klikoni dhe zgjidhni ndonjë rresht në DOM, vlera \u003d\u003d $ 0 shfaqet pranë tij. Kjo është një mënyrë shumë e përshtatshme për të hyrë në artikullin aktualisht aktiv.
Në tastierën node.html, klikoni në elementin e parë në trup (h1).
Përdorni tastierën për të gjetur llojin e nyjes së zgjedhur duke përdorur vetinë nodeType.
$ 0.nodeType;
1
Duke zgjedhur elementin h1, do të shihni 1 si rezultat që i referohet ELEMENT_NODE. Bëni të njëjtën gjë me nyjet e tjera dhe ato do të kthehen përkatësisht 3 dhe 8.
Duke ditur se si të hyni në një element, ju mund të shihni llojin e nyjes pa theksuar elementet në DOM.
document.body.nodeType;
1
Përveç nodeType, mund të përdorni edhe vetinë nodeValue për të zbuluar vlerën e një nyje teksti ose komenti, dhe nyjaName për të marrë etiketën e një elementi.
Ndryshimi i DOM duke përdorur ngjarjet
Deri më tani, ju keni parë se si të ndryshoni DOM në tastierë, dhe ndryshime të tilla dihen se janë të përkohshme; sa herë që faqja rifreskohet, të gjitha ndryshimet humbasin. Në ju azhurnoni ngjyrën e sfondit të faqes në tastierë. Provoni të kombinoni atë që keni mësuar në këtë manual me atë që dini tashmë për të krijuar një buton interaktiv që ndryshon ngjyrën e sfondit.
Kthehuni tek skedari juaj index.html dhe shtoni një element butoni me një ID. Ju gjithashtu duhet të shtoni një lidhje në skedarin e ri në drejtorinë e re js js / scripts.js.
Modeli i objektit të dokumentit
Një ngjarje në JavaScript është një veprim që bën një përdorues. Përdoruesi vendos miun mbi një element, klikon mbi të ose në një çelës të caktuar në tastierë - të gjitha këto janë ngjarje. Në këtë rast të veçantë, butoni duhet të ndërmarrë një veprim kur përdoruesi klikon mbi të. Për ta bërë këtë, duhet të shtoni një dëgjues të ngjarjeve. Krijoni një skedar scripts.js dhe ruajeni në një direktori të re js. Në skedar, duhet të përcaktoni një element të butonit dhe t'ia caktoni atë një ndryshoreje.
Duke përdorur metodën addEventListener (), butoni do të dëgjojë për klikime dhe do të ekzekutojë funksionin e tij pas klikimit.
...
button.addEventListener ("kliko", () \u003d\u003e (
// veprimi do të shkojë këtu
});
Brenda funksionit, duhet të vendosni kodin nga manuali i mëparshëm për të ndryshuar ngjyrën e sfondit në fuchsia.
...
Kështu duket skenari:
butoni let \u003d dokument.getElementById ("changeBackground");
button.addEventListener ("kliko", () \u003d\u003e (
document.body.style.backgroundColor \u003d "fuchsia";
});
Ruani dhe mbyllni skedarin. Rifresko faqen index.html në shfletuesin tënd. Klikoni në butonin e ri dhe ngjyra e sfondit të faqes do të ndryshojë.
Etiketat :,Në këtë manual, ne do të shohim se çfarë është DOM, pse nevojitet dhe si është ndërtuar.
Çfarë është DOM?
Kur një shfletues kërkon një faqe dhe merr burimin e saj HTML si përgjigje nga serveri, së pari duhet ta analizojë atë. Në procesin e analizimit dhe analizimit të kodit HTML, shfletuesi ndërton një pemë DOM bazuar në të.
Pas përfundimit të këtij veprimi dhe një numri të tjerëve, shfletuesi fillon të japë faqen. Në këtë proces, natyrisht, ai tashmë përdor pemën DOM që ai krijoi, jo kodin origjinal HTML.
DOM është një model i dokumentit që shfletuesi krijon në kujtesën e kompjuterit bazuar në kodin HTML që merr nga serveri.
Në terma të thjeshtë, HTML është teksti i faqes, dhe DOM është një grup i objekteve të lidhura të krijuara nga shfletuesi kur analizon tekstin e saj.
Në Chrome, kodi burimor i faqes që merr shfletuesi mund të shikohet në skedën Burimi i panelit të Veglave të Zhvilluesit të Uebit.
Chrome nuk ka një mjet për të parë pemën DOM që ka krijuar. Por ka një përfaqësim të kësaj peme DOM në formën e kodit HTML, ajo është në dispozicion në skedën "Elementet". Ky përfaqësim i DOM është, sigurisht, shumë më i përshtatshëm për të punuar me një zhvillues uebi. Prandaj, nuk ka asnjë mjet që do të përfaqësonte DOM si një strukturë peme.
Objektet në këtë model formohen nga pothuajse gjithçka në HTML (etiketat, përmbajtja e tekstit, komentet, etj.), Përfshirë vetë dokumentin. Lidhjet midis këtyre objekteve në model formohen bazuar në mënyrën se si Elementet HTML ndodhen në kod në lidhje me njëri-tjetrin.
Në këtë rast, DOM i dokumentit pas formimit të tij mund të ndryshohet. Kur DOM ndryshon, shfletuesi ri-vizaton imazhin e faqes pothuajse menjëherë. Si rezultat, ne kemi pasqyrimi i faqes gjithmonë përputhet me DOM.
Për të lexuar dhe modifikuar programatikisht DOM, shfletuesi na siguron DOM API ose, me fjalë të tjera, ndërfaqen programatike. Në një mënyrë të thjeshtë, DOM API është një grup i një numri të madh të objekteve të ndryshme, vetitë dhe metodat e tyre që ne mund të përdorim për të dOM lexon dhe ndryshon.
Në shumicën e rasteve, JavaScript përdoret për të punuar me DOM. sot është e vetmja gjuhë programuese që mund të shkruhet në një shfletues.
Pse na duhet DOM API? Na duhet që të mund ta ndryshojmë faqen duke përdorur JavaScript, dmth. e bëjnë atë dinamike dhe interaktive.
DOM API na ofron (zhvilluesve) një numër të madh metodash me të cilat ne mund të ndryshojmë gjithçka në faqe, si dhe të ndërveprojmë me përdoruesin. Ata. kjo ndërfaqe programimi na lejon të krijojmë ndërfaqe komplekse, forma, të përpunojmë veprimet e përdoruesve, të shtojmë dhe heqim elementë të ndryshëm në faqe, të ndryshojmë përmbajtjen e tyre, vetitë (atributet) dhe shumë më tepër.
Në ditët e sotme praktikisht nuk ka faqe në internet në skenare që nuk do të funksiononin me DOM.
Nga çfarë përbëhet HTML i faqes?
Para se të kaloni në studimin e modelit të objektit të dokumentit, së pari duhet të mbani mend se cili është kodi burimor i një faqe në internet (dokumenti HTML).
Kodi burimor i një faqe në internet përbëhet nga etiketat, atributet, komentet dhe teksti. Etiketat janë sintaksa bazë HTML. Shumica e tyre janë çiftuar. Në këtë rast, njëra prej tyre është ajo hapëse, dhe tjetra është ajo mbyllëse. Një çift i tillë i etiketave formon një element HTML. Elementet HTML mund të kenë parametra shtesë - atribute.
Në një dokument, për të krijuar një shënim të caktuar, disa elementë janë brenda të tjerëve. Si rezultat, një dokument HTML mund të mendohet për sa më shumë elementë HTML të vendosur brenda njëri-tjetrit.
Si shembull, merrni parasysh kodin vijues HTML:
Titulli i artikullit
Seksioni i artikullit
Përmbajtja e artikullit
Në këtë kod, elementi rrënjë është html. Ajo ka fole të elementeve të kokës dhe trupit. Elementi i kokës përmban titullin, dhe trupi përmban h1 dhe div. Elementi div nga ana e tij përmban h2 dhe p.
Tani le të shohim se si një shfletues ndërton një pemë DOM bazuar në kodin HTML.
Si është ndërtuar pema DOM e një dokumenti?
Siç përshkruhet më sipër, shfletuesi ndërton një pemë bazuar në elementet HTML dhe entitetet e tjera të kodit burimor të faqes. Gjatë kryerjes së këtij procesi, ai merr parasysh folezimin e elementeve brenda njëri-tjetrit.
Si rezultat, shfletuesi përdor pemën DOM që rezulton jo vetëm në punën e saj, por gjithashtu na siguron një API për punë të përshtatshme me të përmes JavaScript.
Kur ndërton DOM, shfletuesi krijon objekte (nyjet e pemës DOM) nga elementet HTML, teksti, komentet dhe entitetet e tjera të kësaj gjuhe.
Në shumicën e rasteve, zhvilluesit e uebit interesohen vetëm për objektet (nyjet) e formuara nga elementet HTML.
Në të njëjtën kohë, shfletuesi nuk krijon vetëm objekte nga elementet HTML, por gjithashtu i lidh ato me njëri-tjetrin me lidhje të caktuara, varësisht nga mënyra se si secila prej tyre ka lidhje me tjetrën në kod.
Elementet që janë drejtpërdrejt në disa elementë janë fëmijë në lidhje me të. Dhe ai është prind për secilin prej tyre. Përveç kësaj, të gjithë këta elementë në lidhje me njëri-tjetrin janë vëllezër e motra (vëllezër).
Për më tepër, në HTML, çdo element ka gjithmonë një prind (elementi HTML në të cilin ndodhet direkt). Në HTML, një element nuk mund të ketë shumë prindër. Përjashtimi i vetëm është elementi html. Ai nuk ka prind.
Për të marrë pemën DOM ndërsa shfletuesi e ndërton, thjesht duhet të "rreshtoni" të gjithë elementët në varësi të marrëdhënies së tyre me njëri-tjetrin.
Krijimi i pemës DOM bëhet nga lart poshtë.
Në këtë rast, rrënja e pemës DOM është gjithmonë vetë dokumenti (nyja e dokumentit). Më tej, pema ndërtohet në varësi të strukturës së kodit HTML.
Për shembull, kodi HTML që pamë më lart do të ketë pemën e mëposhtme DOM:
Në majë të kësaj peme është nyja e dokumentit. Kjo nyje është e lidhur me html, është fëmija i saj. Nyja html formohet nga elementi html ( ...) Nyjet e kokës (
...) dhe trupi ( ...) kanë një lidhje prindërore për html. Në raport me njëri-tjetrin, ata janë vëllezër e motra, sepse kanë një prind. Nyja e kokës shoqërohet me titullin (lt; titulli\u003e ...), ai është fëmija i tij. Nyjet h1 dhe div shoqërohen me trupin, për të cilin është prindi. Nyja div është e lidhur me h2 (...
) dhe p (), ata janë fëmijët e tij.Pema fillon, siç u përmend më lart, nga objekti i dokumentit (nyja). Ajo, nga ana tjetër, ka një nyje fëmije të formuar nga elementi html ( ...) Elementet e kokës (
...) dhe trupi ( ...) janë në HTML dhe për këtë arsye janë fëmijët e saj. Më tej, nyja e kokës është prindi i titullit (lt; titulli\u003e ...) Elementet h1 dhe div janë vendosur brenda trupit, që do të thotë se ata janë fëmijët e tij. Div përmban direkt elemente h2 (...
) dhe p (). Kjo do të thotë që nyja div për secilin prej tyre është prindi.Kjo është sa e lehtë është të ndërtosh një pemë DOM në një shfletues bazuar në kodin HTML.
Pse duhet të dini se si ndërtohet një pemë DOM? Së pari, është një kuptim i mjedisit në të cilin dëshironi të ndryshoni diçka. Së dyti, shumica e veprimeve kur punoni me DOM shkon drejt gjetjes (zgjedhjes) së elementeve të kërkuara. Duke mos ditur se si funksionon pema DOM dhe lidhjet midis nyjeve, do të jetë mjaft e vështirë të gjesh një element specifik në të.
Detyrë
Bazuar në pemën DOM të treguar në figurë, krijoni kodin HTML.
Tema është vërtet komplekse. Por, siç thonë ata, djalli nuk është aq i tmerrshëm sa është pikturuar. Kjo është ajo ku unë marr arrën më të vështirë për të thyer: kjo super detyrë e "pikturimit" është aq e tretshme sa të jetë e mundur, por jo plotësisht primitive. Deri më tani, të gjitha materialet që kam lexuar priren të jenë ose zaum ose primitiv.
Çfarë është DOM
Shkurtimi DOM qëndron për Modeli i objektit të dokumentit (modeli i objektit të dokumentit).
DOM është një ndërfaqe programimi për të hyrë në përmbajtjen e dokumenteve HTML, XHTML dhe XML, pra paraqitjen e etiketave dhe atributeve HTML, XHTML dhe XML, si dhe stilet CSS si objekte programimi. Të dy JavaScript dhe gjuhët e tjera të programimit në internet punojnë me këtë model.
Pak histori
Ekzistojnë 4 nivele DOM (0, 1, 2 dhe 3).
Niveli 0(1996) përfshinte modele DOMe cila ekzistonte para nivelit 1. Këto janë kryesisht koleksione: dokument.imazhe, dokument.forma, dokument.shtresa dhe dokument.të gjitha. Këto modele nuk janë specifikime zyrtare. DOMbotuar W3C... Përkundrazi, ato ofrojnë informacion në lidhje me atë që ekzistonte para se të fillonte procesi i standardizimit.
Niveli 1 (1997) gjithashtu përfshiu funksionalitetin themelor për përpunimin e dokumenteve XML: mënyra të shumta për të punuar me nyje individuale, duke punuar me udhëzime të përpunimit XML, etj.
Përveç kësaj, DOM Niveli 1 përmban një numër të ndërfaqeve speciale që mund të trajtojnë elemente individuale HTML. Për shembull, mund të punoni me tabela HTML, formularë, zgjidhni lista dhe më shumë.
NË Niveli 2 i DOM (2002) shtoi disa veçori të reja.
Nëse në DOM nivelit 1 i mungonte mbështetja për hapësirën e emrave, ndërfaqet DOM Niveli 2 përmban metoda për menaxhimin e hapësirave të emrave të shoqëruara me kërkesat për hartimin dhe përpunimin e dokumenteve XML.
Përveç kësaj, DOM niveli 2 mbështet ngjarjet.
Niveli 2 është niveli aktual i specifikimit DOM, Sidoqoftë W3C rekomandon disa pjesë të specifikimit të Nivelit 3.
Niveli i DOM 3 është një draft punues i një specifikimi që zgjeron funksionalitetin DOM niveli 2. Një nga karakteristikat më të rëndësishme të këtij versioni të specifikimit është aftësia për të punuar me zgjerime të shumta DOM.
Çfarë do të thotë ndërfaqja e softuerit?
Fjala angleze ndërfaqja mund të përkthehet si "zona e kontaktit". Një kompjuter, duke folur afërsisht, kupton vetëm dy gjëra: një copë bosh dhe një bit të mbushur. Gjuha e folur nga kompjuteri mund të mendohet si një varg i pafund zero dhe një, duke dhënë një numër të pafund kombinimesh të ndryshme.
Çdo kod programi është i kuptueshëm për interpretimin e programuesit të këtyre "zero-ve dhe atyre" me të cilat funksionon kompjuteri. Kështu, çdo gjuhë programimi është një ndërfaqe njeri-makinë.
Shfletuesit funksionojnë në të njëjtën mënyrë si aplikacionet e tjera kompjuterike. Ata interpretojnë HTML, XML, CSS, JavaScript, PHP, Perl, etj në "zero dhe një". Për të punuar me këtë shumëgjuhësi, ju duhet një platformë e përbashkët. Kjo platformë është DOM - një specifikim që nuk varet nga një gjuhë e veçantë programimi ose markup. Shtë një ndërfaqe që mund të përdoret në shumë gjuhë të njohura të programimit që lidhen me krijimin e faqeve në internet dhe është në gjendje të kuptojë dhe interpretojë objektet. DOM.
DOM dhe shfletuesit
DOM dhe JavaScript
Në JavaScript, maja e shkallës hierarkike të objekteve DOM, një lloj "dirigjent" për këtë ndërfaqe është objekti dokumentdhe objektet DOM bëhen pronat e tij, vetitë e vetive të tij, etj. Ata quhen gjithashtu nyjet DOM.
Nyjet DOM
NË DOM niveli 2 ka 12 lloje nyjesh. Pas secilit lloj nyje DOM konstante fikse me emër unik. Shumica e nyjeve janë të dizajnuara për të punuar me të XML... Në kuvend HTML - JavaScriptme të cilën kemi të bëjmë, mund të përdoren vetëm 5 lloje. Por edhe kjo "majë e ajsbergut" është një "pemë shumë e përhapur" që nuk mund të mbulohet në një ose dy seanca.
Komplet i plotë i konstanteve të tipit të nyjeve siç përcaktohet në specifikim W3C DOM (nyjet në dispozicion për HTML - JavaScript):
Emri konstant |
Vlera |
Përshkrim |
Nyja.ELEMENT_NODE |
Nyja e elementit (kthen elementin rrënjësor të dokumentit, për dokumentet HTML ky është elementi HTML) |
|
Nyja.ATTRIBUTE_NODE |
Nyja e atributit (kthen një atribut të një elementi në një dokument XML ose HTML) |
|
Nyja e tekstit (#text) |
||
Nyja.CDATA_SECTION_NODE |
Nyja e Seksionit CDATA (XML: Sintaksa alternative për shfaqjen e të dhënave të personazheve) |
|
Nyja.ENTITY_REFERENCE_NODE |
||
Nyja.ENTITY_NODE |
Nyja e seksionit |
|
Nyja.PROCESSING_INSTRUCTION_NODE |
Nyja e Direktivës XML |
|
Nyja.COMMENT_NODE |
Nyja e komentit |
|
Nyja.DOCUMENT_NODE |
Nyja e dokumentit (baza për qasjen në përmbajtjen e dokumentit dhe krijimin e përbërësve të tij) |
|
Nyja.DOCUMENT_TYPE_NODE |
Nyja e tipit të dokumentit (kthen llojin e dokumentit të dhënë, d.m.th. vlerën e etiketës DOCTYPE) |
|
Nyja.DOCUMENT_FRAGMENT_NODE |
Nyja e fragmentit të dokumentit (nxjerrja e një pjese të pemës së dokumentit, krijimi i një fragmenti të ri të dokumentit, futja e një fragmenti si fëmijë i një nyje, etj.) |
|
Nyja.NOTATION_NODE |
Nyja e shënimit * |
* Shënimet janë emra që identifikojnë formatin e seksioneve të paparashikuara, formatin e elementeve që kanë një atribut të shënimit ose aplikacionin të cilit i drejtohet një direktivë. (Nuk është e qartë? As unë nuk jam shumë i mirë në këtë.)
Struktura e dokumentit në DOM
Të gjitha objektet e dokumenteve janë nyje DOM. Merrni parasysh një dokument elementar:
< title>DOM"center"\u003e Titulli
Teksti i paragrafit
Këtu keni një diagram të pemës së saj DOM:
Çdo nyje mund të ketë nyje fëmijë (shigjetat i çojnë ato në diagram). Objekti i dokumentit - baza e pemës së dokumentit - është gjithashtu një nyje, por nuk ka një nyje mëmë dhe ka një numër vetish dhe metodash që nyjet e tjera nuk i kanë. Ka një nyje fëmijë: element .
Element dy nyje fëmijësh:
dhe , për të cilat të gjithë elementët që ato përmbajnë bëhen fëmijë.Vëmendje!
"Elementi" dhe "etiketa" nuk janë sinonime. Një etiketë është një shenjë e shënimit: ato janë dy etiketa të ndryshme. Dhe një element është një objekt i shënuar me këto etiketa: Teksti i paragrafit
Elementet
dhe
Përmbajnë brenda vetes teksti... Këta janë fëmijët e tyre nyjet e tekstit... Element
Ka gjithashtu atribut: align \u003d "qendra". Nyjet e atributeve janë edhe nyje fëmijë të elementeve që i përmbajnë ato.
Kur punoni me nyjet e pemës DOM, përdoren vetitë dhe metodat e tyre.
Disa veti të nyjeve
Hyrje e vogël
E përsëris edhe një herë: kur u referohemi elementeve të faqeve në skripta, kemi të bëjmë jo vetëm me gjuhën Javascript, por edhe me ndërfaqen e ngulitur në të. DOM... Ndonjëherë duhet të jeni të vetëdijshëm për këtë, ndonjëherë mund të harroni "atë që themi në prozë".
Disa veti dhe metoda nga modeli i objektit DOM ne tashmë e kemi përdorur këtë mënyrë. Prandaj, herë pas here do të jap lidhje me mësimet e mëparshme.
Në këtë manual, ne nuk do të shkojmë në rrugën "akademike", duke marrë parasysh të gjitha vetitë e të gjitha nyjeve në të gjithë shfletuesit. Së pari, le të njihemi me më praktikat dhe "pa konflikte" prej tyre.
Kjo është arsyeja pse ne nuk do të filloni, siç është zakon, me "vetitë themelore": nyjaEmri dhe nyjaVlera.
emri i etiketës
Kthen një varg me emrin e etiketës së elementit. Të gjitha vlerat e emrave të etiketave përmbajnë vetëm karaktere të mëdha.
Sintaksë
element.emri i etiketësShembull
Testimi i pronës tagName
Rezultati
Testimi i pronës tagName
e brendshmeHTML
Ne tashmë e kemi hasur këtë pronë (shih Mësimi 10). Dhe tani ne e kuptojmë se nga erdhi: "nga shtëpia".
Jep akses në përmbajtjen e elementit. Përcakton jo vetëm përmbajtjen tekstuale, por të gjitha etiketat HTML që janë brenda elementit.
Kjo pronë nuk është vetëm e lexueshme, por edhe për ndryshimin e përmbajtjes.
shënim
Në IE për një sërë elementesh e brendshmeHTML punon vetëm për lexim: këto janë të gjitha sendet e tryezës përveç