Acasă - Configurare Internet
Care este modelul obiect document dom. Un alt blog pentru dezvoltatori web
prin innerHTML:




În această lecție, ne vom uita la ce este DOM-ul, de ce este necesar și cum este construit.

Ce este DOM?

Când un browser solicită o pagină și primește codul HTML sursă ca răspuns de la server, trebuie mai întâi să o analizeze. În procesul de analiză și analiză a codului HTML, browserul construiește un arbore DOM pe baza acestuia.

După finalizarea acestei acțiuni și a altora, browserul începe să redeze pagina. În acest proces, el, desigur, folosește deja arborele DOM pe care l-a creat, și nu codul HTML original.

DOM este un model de obiect de document pe care browserul îl creează în memoria computerului pe baza codului HTML pe care îl primește de la server.

Pentru a spune simplu, codul HTML este textul unei pagini, iar DOM este un set de obiecte asociate create de browser la analizarea textului acesteia.

În Chrome, codul sursă al paginii pe care o primește browserul poate fi vizualizat în fila „Sursă” din panoul „Instrumente pentru dezvoltatori web”.


Chrome nu are un instrument cu care să puteți vizualiza arborele DOM pe care îl creează. Dar există o reprezentare a acestui arbore DOM sub formă de cod HTML, este disponibil în fila „Elemente”. Această reprezentare DOM este, desigur, mult mai convenabilă pentru a lucra cu un dezvoltator web. Prin urmare, nu există niciun instrument care ar reprezenta DOM-ul ca structură arborescentă.


Obiectele din acest model sunt formate din aproape tot ceea ce este în HTML (etichete, conținut text, comentarii etc.), inclusiv documentul în sine. Relațiile dintre aceste obiecte din model se formează pe baza modului în care elementele HTML sunt poziționate unul față de celălalt în cod.

În acest caz, DOM-ul documentului după formarea acestuia poate fi modificat. Când DOM-ul se schimbă, browserul redesenează aproape instantaneu imaginea paginii. Ca rezultat, redarea paginii noastre corespunde întotdeauna DOM-ului.

Pentru a citi și modifica DOM-ul în mod programatic, browser-ul ne oferă un API DOM sau, cu alte cuvinte, o interfață de programare. Mai simplu spus, API-ul DOM este o colecție de un număr mare de obiecte diferite, proprietățile și metodele lor pe care le putem folosi pentru a citi și modifica DOM.

Pentru a lucra cu DOM, JavaScript este folosit în majoritatea cazurilor, deoarece... Astăzi este singurul limbaj de programare în care scripturile pot fi executate într-un browser.

De ce avem nevoie de API-ul DOM?

Avem nevoie de el pentru a putea folosi JavaScript pentru a schimba pagina din mers, de exemplu. fă-l dinamic și interactiv.

API-ul DOM ne pune la dispoziție (dezvoltatorilor) un număr mare de metode prin care putem schimba totul din pagină, precum și interacționa cu utilizatorul. Aceste. Această interfață software ne permite să creăm interfețe complexe, formulare, să procesăm acțiunile utilizatorului, să adăugăm și să eliminăm diverse elemente de pe pagină, să le modificăm conținutul, proprietățile (atributele) și multe altele.

În zilele noastre practic nu există site-uri pe web ale căror scenarii să nu funcționeze cu DOM.

În ce constă codul HTML al unei pagini?

Înainte de a trece la studiul modelului obiect document, trebuie mai întâi să vă amintiți care este codul sursă al unei pagini web (document HTML). Codul sursă al unei pagini web este format din etichete, atribute, comentarii și text. Etichetele sunt constructul sintactic de bază al HTML. Majoritatea sunt pereche. În acest caz, unul dintre ele se deschide, iar celălalt se închide. O astfel de pereche de etichete formează un element HTML. Elementele HTML pot avea opțiuni suplimentare

– atribute.

Într-un document, pentru a crea anumite markupuri, unele elemente sunt situate în interiorul altora. Ca rezultat, un document HTML poate fi reprezentat ca un set de elemente HTML imbricate unul în celălalt.

Ca exemplu, luați în considerare următorul cod HTML:

Titlul paginii Titlul articolului Secțiunea articolului

Conținutul articolului

În acest cod, elementul rădăcină este html. Conține elemente ale capului și corpului. Elementul head conține un titlu, iar corpul conține un h1 și un div. Elementul div la rândul său conține h2 și p .

Acum să ne uităm la modul în care browserul construiește un arbore DOM pe baza codului HTML.

După cum s-a descris deja mai sus, browserul construiește un arbore bazat pe elemente HTML și alte entități cod sursă pagini. Atunci când se efectuează acest proces, se ia în considerare imbricarea elementelor unul în celălalt.

Drept urmare, browserul folosește arborele DOM rezultat nu numai în activitatea sa, ci ne oferă și un API pentru lucrul convenabil cu acesta prin JavaScript.

La construirea DOM-ului, browserul creează obiecte (noduri de arbore DOM) din elemente HTML, text, comentarii și alte entități ale acestui limbaj.

În cele mai multe cazuri, dezvoltatorii web sunt interesați doar de obiecte (noduri) formate din elemente HTML.

În același timp, browserul nu numai că creează obiecte din elemente HTML, ci și le conectează între ele prin anumite conexiuni, în funcție de modul în care fiecare dintre ele se raportează la celălalt în cod.

Elementele care se află direct într-un element sunt copii în relație cu acesta. Și este un părinte pentru fiecare dintre ei. În plus, toate aceste elemente sunt frați (frați) în relație unul cu celălalt.

Mai mult, în HTML, orice element are întotdeauna un părinte (elementul HTML în care se află direct). În HTML, un element nu poate avea mai mulți părinți. Singura excepție este elementul html. Nu are părinte.

Pentru a obține un arbore DOM pe măsură ce browserul îl construiește, trebuie doar să „aranjați” toate elementele în funcție de relația lor între ele.

Crearea arborelui DOM se face de sus în jos.

În acest caz, rădăcina arborelui DOM este întotdeauna documentul însuși (nodul documentului). Apoi, arborele este construit în funcție de structura codului HTML.

De exemplu, codul HTML la care ne-am uitat mai sus ar avea următorul arbore DOM:


În partea de sus a acestui arbore se află nodul document. Acest nod asociat cu html, este copilul lui. Nodul html este creat element html(...). Nodurile cap(...) și corp(...) au o relație de părinte cu html. În relație unul cu celălalt, sunt frați, pentru că ai un singur parinte. Nodul principal este asociat cu titlul (lt;titlu>...), este copilul său. Nodurile h1 și div sunt asociate cu body , care este părintele lor. Nodul div este conectat la h2(...) și p(), ele sunt copiii acestuia.

Arborele începe, după cum sa menționat mai sus, cu obiectul document (nodul). La rândul său, are un nod copil format din elementul html (...). Elementele cap(...) și corp(...) sunt în html și, prin urmare, sunt copiii săi. În continuare, nodul principal este părintele titlului (lt;titlu>...). Elementele h1 și div sunt imbricate în corp, adică sunt copiii acestuia. Div-ul conține direct elementele h2 (...) și p (). Aceasta înseamnă că nodul div pentru fiecare dintre ele este părintele.

Acesta este cât de ușor este să construiți un arbore DOM într-un browser bazat pe cod HTML.

De ce trebuie să știți cum este construit arborele DOM?

În primul rând, este o înțelegere a mediului în care doriți să schimbați ceva. În al doilea rând, majoritatea acțiunilor când lucrați cu DOM se reduc la căutarea (selectarea) elementelor necesare. Fără a ști cum este structurat arborele DOM și conexiunile dintre noduri, va fi destul de dificil să găsești un element specific în el.

Exercita


Pe baza arborelui DOM prezentat în figură, creați cod HTML. Această secțiune prezintă scurtă introducere cu Document Object Model (DOM) - ce este DOM, cum sunt furnizate structurile documentelor HTML și XML și cum să interacționați cu acestea. Această secțiune conține informații de fundal

si exemple.

Ce este un Document Object Model (DOM)?

Document Object Model (DOM) este o interfață de programare (API) pentru documente HTML și XML. DOM oferă o reprezentare structurată a unui document și definește modul în care acea structură poate fi accesată de programe care pot schimba conținutul, stilul și structura documentului. Vederea DOM constă dintr-un grup structurat de noduri și obiecte care au proprietăți și metode. În esență, DOM conectează o pagină web la limbaje de scripting sau limbaje de programare.

O pagină web este un document. Documentul poate fi prezentat atât în ​​fereastra browserului, cât și în codul HTML propriu-zis. În orice caz, este același document. DOM oferă o altă modalitate de a reprezenta, stoca și gestiona acest document. DOM acceptă pe deplin reprezentarea orientată pe obiecte a unei pagini web, făcând posibilă modificarea acesteia folosind un limbaj de scripting precum JavaScript.

Nu trebuie să faci nimic special pentru a manipula DOM. Diferitele browsere au implementări diferite ale DOM, iar aceste implementări arată grade diferite de conformitate cu standardul DOM real (un subiect pe care am încercat să evităm să intrăm în această documentație), dar fiecare browser folosește un DOM diferit pentru a face paginile web interoperabile. cu limbaje de scripting.

Prin crearea unui script folosind elementul sau prin includerea instrucțiunilor într-o pagină web pentru a încărca scriptul, puteți începe imediat să utilizați interfața de programare a aplicației (API), folosind elementele fie pentru a interacționa cu documentul în sine, fie pentru a obține descendenți de acel document, adică diverse elemente de pe pagină. Programarea dvs. DOM poate fi ceva la fel de simplă ca imprimarea unui mesaj folosind o funcție de obiect sau poate utiliza metode DOM mai complexe care creează conținut nou, așa cum se arată în exemplul următor:

Următorul exemplu are cod JavaScript definit în interiorul unui element, acest cod setează funcția când documentul este încărcat (când întregul DOM este disponibil pentru utilizare). Această funcție creează un nou element H1, adaugă text la acest elementși apoi adaugă H1 la arborele documentului:

< html > < head > < script >// lansează această funcție la încărcarea unei ferestre de document. onload = funcția () ( // creând mai multe elemente // pentru a goli Pagina HTML titlu = document. createElement("h1");< body >heading_text = document. createTextNode("Cap mare!");

rubrica. appendChild( heading_text) ; document. corp. appendChild(titlu);)

Tipuri importante de date Această secțiune are scopul de a oferi o scurtă descriere diverse tipuri

și obiecte într-un mod simplu și accesibil. Există o serie de tipuri de date diferite care sunt utilizate în API la care ar trebui să acordați atenție. Pentru simplitate, exemplul de sintaxă din această secțiune se referă în mod obișnuit la noduri ca element s, matrice de noduri ca nodeList s (sau pur și simplu elemente s), iar atributele nodului ca pur și simplu atribut s. Mai jos este un tabel cu
scurtă descriere
aceste tipuri de date. denotă un element sau un nod de tip element returnat de un membru al API-ului DOM. În loc să spunem că metoda document.createElement() returnează o referință la un nod, vom spune pur și simplu că acest element returnează un element care a fost pur și simplu creat în DOM. Obiectele element implementează interfața elementului DOM și, de asemenea, interfața mai generală Node. Ambele interfețe sunt incluse în acest ajutor.
nodeList
NodeList

o matrice de elemente, precum cea returnată de metoda Document.getElementsByTagName(). Elementele specifice dintr-o matrice sunt accesate prin index în două moduri:

  • listă.articol(1)

Aceste metode sunt echivalente. În prima metodă, item() este singura metodă a obiectului NodeList. Acesta din urmă folosește sintaxa normală a matricei pentru a obține a doua valoare din listă.

atribut Când un atribut este returnat de un membru API (de exemplu, metoda createAttribute()), acesta va fi o referință la un obiect care oferă o interfață specială (deși mică) pentru atribute. Atributele sunt noduri în DOM, la fel ca elementele, deși rar le puteți folosi în acest fel.
numităNodeMap namedNodeMap este similar cu o matrice, dar elementele sunt accesate după nume sau index. Accesul prin index este doar pentru comoditatea listării, deoarece Elementele nu au o ordine specifică în listă. Acest tip de date are o metodă item() în acest scop și, de asemenea, puteți adăuga și elimina elemente din namedNodeMap
interfețe DOM

Acesta este un tutorial despre obiecte și lucruri reale pe care le puteți folosi pentru a manipula ierarhia DOM. Există multe locuri în care înțelegerea modului în care funcționează poate fi surprinzătoare. De exemplu, un obiect care reprezintă un element de formular HTML își ia proprietatea name din interfața HTMLFormElement și proprietatea className din interfața HTMLElement. În ambele cazuri, proprietatea dorită este în acel obiect de formă.

În plus, relația dintre obiecte și interfețele pe care le implementează în DOM poate fi surprinzătoare și această secțiune încearcă să spună puțin despre interfețele existente în DOM și despre cum pot fi accesate.

Interfețe și obiecte

Multe obiecte implementează acțiuni din mai multe interfețe. Obiectul tabel, de exemplu, implementează unul special care include metode precum createCaption și insertRow . Dar, deoarece acesta este un tabel, este și un element HTML, table implementează interfața Element, descrisă în secțiune. În cele din urmă, deoarece un element HTML (în sensul DOM) este un nod din arborele care alcătuiește modelul obiect pentru o pagină HTML sau XML, un element de tabel implementează și interfața Node mai generală din care este derivat Element.

Var table = document.getElementById("tabel"); var tableAttrs = table.attributes; // Interfață nod/element pentru (var i = 0; i< tableAttrs.length; i++) { // HTMLTableElement interface: border attribute if(tableAttrs[i].nodeName.toLowerCase() == "border") table.border = "1"; } // HTMLTableElement interface: summary attribute table.summary = "note: increased border";

Interfețe de bază în DOM

Această secțiune listează câteva dintre cele mai comune interfețe din DOM. Ideea nu este de a descrie ceea ce fac aceste metode API, ci de a vă oferi câteva gânduri despre tipurile de metode și proprietăți pe care le veți vedea adesea când utilizați DOM. Aceste părți comune ale API-ului sunt folosite în majoritatea exemplelor din secțiunea de la sfârșitul acestui ajutor.

Documentul, fereastra sunt obiecte ale căror interfețe ai tendința de a folosi foarte des în programarea DOM. Vorbitor în cuvinte simple, obiect fereastră reprezintă ceva asemănător unui browser, iar obiectul document este rădăcina documentului în sine. Element moștenește din interfața comună Node, iar aceste interfețe împreună oferă multe metode și proprietăți care pot fi aplicate elementelor individuale. Aceste elemente pot avea și interfețe separate pentru lucrul cu tipurile de date pe care le conțin aceste elemente, ca în exemplul de obiect tabel din cazul precedent.

Mai jos este o listă scurtă de membri API obișnuiți utilizați în programarea paginilor web și XML folosind DOM:

  • parentNode.appendChild(nod)
Testarea DOM API

Acest document conține exemple pentru fiecare interfață pe care o puteți utiliza în dezvoltarea dvs. În unele cazuri, exemplele sunt pagini web cu drepturi depline cu acces la DOM-ul din element, listând, de asemenea, elementele necesare rulării script-ului pe formular și elementele HTML pe care vor fi efectuate operațiunile DOM. Când se întâmplă acest lucru, puteți pur și simplu să copiați și să lipiți exemplul într-un nou document HTML, să îl salvați și să îl rulați în browser.

Există însă cazuri în care exemplele sunt mai concise. Pentru a rula exemple care doar demonstrează elementele de bază ale modului în care interfețele interacționează cu elementele HTML, puteți pregăti o pagină de test în care veți plasa funcții în interiorul scripturilor. Următoarea pagină web foarte simplă conține un element antet în care puteți plasa funcții pentru a testa interfața. Pagina conține mai multe elemente cu atribute care pot fi returnate, setate sau, cu alte cuvinte, manipulate și conține interfața de utilizator necesară pentru a apela funcțiile necesare din browser.

Puteți folosi această pagină de testare sau una similară pentru a testa interfețele DOM care vă interesează și pentru a vedea cum funcționează acestea în browsere. Puteți actualiza conținutul funcției test() după cum este necesar, puteți crea mai multe butoane sau puteți adăuga elemente după cum este necesar.

< html > < head > < title >Teste DOM< script type = " application/javascript" >funcția setBodyAttr (attr, value) ( ​​​​dacă (document. corp) eval ("document.body." + attr+ "="" + value+ """ ) ; else notSupported () ; )< body > < div style =" margin : .5 in; height : 400 ; " > < p > < b > < tt >text< form > < select onChange = " setBodyAttr(" text" , this.options.value);" > < option value = "negru" >negru< option value = "albastru închis" >albastru închis< p > < b > < tt >bgColor< select onChange = " setBodyAttr(" bgColor" , this.options.value);" > < option value = "alb" >alb< option value = "gri deschis" >gri< p > < b > < tt >legătură< select onChange = " setBodyAttr(" link" , this.options.value);" > < option value = "albastru" >albastru< option value = "verde" >verde< small > < a href = " http://www.brownhen.com/dom_api_top.html" id = " sample" >(link exemplu)< br > < form > < input type = " button" value = "versiune" onclick = " ver()" />

Pentru a testa multe interfețe pe o singură pagină, un set de proprietăți care schimbă culorile paginii web, puteți crea o pagină web similară cu o întreagă „consolă” de butoane, câmpuri de text și alte elemente. Următoarea captură de ecran oferă o idee despre cum interfețele pot fi grupate pentru testare

În acest exemplu, meniul drop-down actualizează dinamic părți ale paginii web accesibile din DOM (de exemplu, culoarea fundalului, culoarea linkului și culoarea textului). Cu toate acestea, atunci când dezvoltați pagini de testare, testarea interfețelor, așa cum ați citit despre aceasta, este o parte importantă a învățării munca eficienta cu DOM.


Subiectul este chiar complex. Dar, după cum se spune, diavolul nu este atât de groaznic pe cât este pictat. Aici primesc cea mai dură nucă: această super sarcină de a o „vopsi” cât mai digerabilă, dar nu în întregime primitivă. Până acum, toate materialele pe care le-am citit tind să fie fie abstruse, fie primitive.

Ce este DOM

Abrevierea DOM înseamnă Model obiect document(model de obiect document).

DOM este o interfață de programare pentru accesarea conținutului documentelor HTML, XHTML și XML, adică reprezentarea etichetelor și Atributele HTML, XHTML și XML și stilurile CSS ca obiecte de programare. Atât JavaScript, cât și alte limbaje de programare web funcționează cu acest model.

Puțină istorie

Există 4 niveluri DOM (0, 1, 2 și 3).

Nivelul 0 (1996) a inclus modele DOM care existau înainte de Nivelul 1. Acestea sunt în principal colecții: document.images, document.forms, document.layers și document.all. Aceste modele nu sunt în mod oficial specificații DOM publicate de W3C. Mai degrabă, ele reprezintă informații despre ceea ce a existat înainte de începerea procesului de standardizare.

Nivelul 1 (1997) a inclus și elementul de bază funcţionalitate privind procesarea documentelor XML: numeroase moduri de a lucra cu noduri individuale, de a lucra cu instrucțiuni de procesare XML etc.

În plus, nivelul 1 DOM conține o serie de interfețe speciale care pot gestiona elemente HTML individuale. De exemplu, puteți lucra cu tabele HTML, formulare, liste de selecție etc.

DOM Level 2 (2002) a adăugat câteva funcții noi.

În timp ce nivelul 1 DOM nu avea suport pentru spațiile de nume, interfețele DOM Nivelul 2 conțin metode de gestionare a spațiilor de nume asociate cu cerințele pentru compunerea și procesarea documentelor XML.

În plus, nivelul 2 DOM acceptă evenimente.

Nivelul 2 este nivelul actual al specificației DOM, dar W3C recomandă unele secțiuni ale specificației de nivel 3.

DOM Level 3 este un proiect de specificație de lucru care extinde funcționalitatea DOM Level 2. Una dintre cele mai caracteristici importante Această versiune a specificației este capacitatea de a lucra cu numeroase extensii DOM.

Ce înseamnă „interfață software”?

Interfața cuvântului englezesc poate fi tradus ca „zonă de contact”. Un computer, aproximativ vorbind, înțelege doar două lucruri: un bit gol și un bit umplut. Limbajul pe care îl „vorbește” un computer poate fi gândit ca un șir nesfârșit de zerouri și unu, dând un număr infinit de combinații diferite.

Orice cod de program este o interpretare, pe înțelesul programatorului, a acestor „zerouri și unități” cu care lucrează computerul. Astfel, orice limbaj de programare este o interfață om-mașină.

Browserele funcționează la fel ca și altele aplicatii informatice. Ei interpretează în „zerouri și unu” coduri HTML, XML, CSS, JavaScript, PHP, Perl etc. Pentru a face față acestui multilingvism, este nevoie de o platformă comună. Această platformă este DOM - o specificație care nu depinde de un anumit limbaj de programare sau de marcare. Este o interfață care poate fi utilizată în multe limbaje de programare populare asociate cu crearea de pagini web și capabilă să înțeleagă și să interpreteze obiecte DOM.

DOM și browsere

DOM și JavaScript

În JavaScript, partea de sus a scării ierarhice a obiectelor DOM, un fel de „conductor” al acestei interfețe, este obiectul document, iar obiectele DOM devin proprietățile sale, proprietățile proprietăților sale etc. Ele sunt numite și noduri DOM.

noduri DOM

Există 12 tipuri de noduri în DOM nivelul 2. Fiecărui tip de nod DOM i se atribuie o constantă cu nume unic. Majoritatea nodurilor sunt proiectate să funcționeze cu XML. În ansamblul HTML - JavaScript pe care îl facem, pot fi folosite doar 5 tipuri. Dar chiar și acest „vârf al aisbergului” este un „copac foarte răspândit” care nu poate fi acoperit în una sau două lecții.

Setul complet de constante de tip de nod definite în specificația W3C DOM (nodurile disponibile pentru HTML - JavaScript sunt evidențiate cu albastru):

Nume constant

Sens

Descriere

Node.ELEMENT_NODE

Element Node (returnează elementul rădăcină al documentului, pentru documentele HTML acesta este elementul HTML)

Node.ATTRIBUTE_NODE

Nod de atribut (returnează un atribut al unui element de document XML sau HTML)

Nod text (#text)

Node.CDATA_SECTION_NODE

Nod secțiune CDATA (XML: o sintaxă alternativă pentru afișarea datelor de caractere)

Node.ENTITY_REFERENCE_NODE

Node.ENTITY_NODE

Nod de partiție

Node.PROCESSING_INSTRUCTION_NODE

Nod directiv XML

Node.COMMENT_NODE

Nod de comentariu

Node.DOCUMENT_NODE

Nodul document (baza pentru accesarea conținutului documentului și crearea componentelor acestuia)

Node.DOCUMENT_TYPE_NODE

Nodul tip document (returnează tipul a acestui document, adică valoarea etichetei DOCTYPE)

Node.DOCUMENT_FRAGMENT_NODE

Nod fragment de document (extragerea unei părți din arborele documentului, crearea unui nou fragment de document, inserarea unui fragment ca copil al unui nod etc.)

Node.NOTATION_NODE

Nod de notație*

* Notațiile sunt nume care identifică formatul secțiunilor neparsate, formatul elementelor care au un atribut de notație sau programul de aplicație căruia îi este adresată directiva.

(Nu este clar? Nici eu nu sunt prea sigur încă.)

Structura documentului în DOM

< title>Toate obiectele document sunt noduri DOM. Să ne uităm la un document de bază:

Antet DOM

Textul paragrafului

Iată o diagramă a arborelui său DOM:

Fiecare nod poate avea noduri copil (săgețile conduc la ele în diagramă). Obiectul document - baza arborelui document - este, de asemenea, un nod, dar nu are un nod părinte și are o serie de proprietăți și metode pe care alte noduri nu le au. Are un nod copil: element.

Un element are două noduri copil: și , pentru care toate elementele conținute în ele devin copii.

„Element” și „etichetă” nu sunt sinonime. O etichetă este un semn de marcare: - acestea sunt două etichete diferite. Și un element este un obiect marcat cu aceste etichete:

Antet DOM

.

Elemente și

Conține text în interior. Acestea sunt nodurile lor de text copil. Elementul are și un atribut: align="center" . Nodurile de atribut sunt și noduri copii ale elementelor care le conțin.

Când lucrați cu nodurile arborelui DOM, sunt utilizate proprietățile și metodele acestora.

Unele proprietăți ale nodurilor

Mică introducere

Repet încă o dată: atunci când accesăm elemente de pagină în scripturi, avem de-a face nu numai cu limbajul Javascript, ci și cu interfața DOM încorporată în acesta. Uneori trebuie să fii conștient de acest lucru, uneori poți uita „că vorbim în proză”.

Am folosit deja unele proprietăți și metode din modelul de obiecte DOM în acest fel. Prin urmare, din când în când voi oferi link-uri către lecțiile anterioare.

În această lecție, nu vom merge pe calea „academică”, luând în considerare toate proprietățile tuturor nodurilor din toate browserele. În primul rând, să facem cunoștință cu cele mai practice și „fără conflicte” dintre ele.

De aceea nu vom începe, așa cum este de obicei, cu „proprietățile principale”: nodeName și nodeValue.

tagName

Returnează un șir care conține numele etichetei elementului. Toate valorile tagName conțin numai caractere majuscule.

Sintaxă

element.tagName

Exemplu

Testarea proprietății tagName

document.write(document.getElementById( „testTagName”).tagName)

Rezultat

Testarea proprietății tagName

innerHTML

Am întâlnit deja această proprietate (vezi. Lecția 10). Și acum înțelegem de unde vine: „de acasă”.

Oferă acces la conținutul elementului. Specifică nu numai conținutul textului, ci și toate etichetele HTML situate în interiorul elementului.

Această proprietate nu este doar pentru citire, ci și pentru modificarea conținutului.

Nota

În IE, innerHTML este doar în citire pentru un număr de elemente: toate elementele de tabel, cu excepția

și , precum și și .

De exemplu, am creat un tabel gol fără un element

și vrem să-l inserăm programatic în




IE va afișa „ eroare necunoscută execuție” și alte browsere vor efectua inserarea.

În același timp, dacă interogăm conținutul existent al unui element , de exemplu, prin alert(document.getElementById("id").innerHTML) , atunci aceasta va funcționa în IE.

Sintaxă

element.innerHTML = "text atribuit"

Exemplu




Paragraf de inserat



// Această funcție citește textul și îl inserează în paragraful dat.
funcția testRead() (
document.getElementById( "ţintă").innerHTML = document.getElementById( „testInnerHTML”).innerHTML
}
// Această funcție modifică textul paragrafului dat.
funcția testChange() (
document.getElementById( "ţintă").innerHTML = „Recolorarea și schimbarea textului”
}
// Această funcție readuce proprietatea în poziția inițială.
funcția testReset() (
document.getElementById( "ţintă").innerHTML = „Paragraf de inserat”
}





Testarea proprietății innerHTML

Paragraf de inserat

Această publicație precede o serie de articole despre moduri alternative lucrul cu XML. „Alternativă”, deoarece, de regulă, lucrul cu XML în 1C este limitat la analizarea xml folosind citirea secvențială - analizarea linie cu linie a conținutului text. Dar există și alte moduri.

De exemplu, folosind limbajul de interogare XML xPath sau șabloane de transformare XSL. Aceste opțiuni vor fi discutate în articolele viitoare. Dar toate se bazează pe o reprezentare de bază DOM a documentelor XML. Despre ce este DOM ( obiect document model sau model obiect document) și vor fi discutate în publicație.

DOM se bazează pe reprezentarea unui document a oricărei structuri sub forma unui arbore de noduri, fiecare nod (nod) al căruia reprezintă un element, un atribut al unui element, valoarea textului unui element etc. Legătura dintre noduri este construită pe principiul „părinte - subordonați”. Rădăcina documentului (arborele DOM) nu are părinte. Un element fără margini nu are niciun copil (astfel de elemente sunt numite în mod abstract frunze ale copacului). Astfel Modelul DOM poate fi creat nu numai pentru XML, ci practic pentru orice document structurat (HTML, XHTML). Deci, de exemplu, browserul utilizatorului, primind codul HTML al unei pagini web de pe Internet, construiește arborele DOM al acestei pagini în memoria RAM a computerului utilizatorului.

DOM-ul deschide posibilități largi de manipulare a datelor din document. Puteți crea noduri noi, le puteți insera la diferite niveluri de arbore, puteți copia noduri, șterge noduri, căuta noduri folosind diferiți parametri și multe altele.

Modelul DOM document XML este prezentat clar în figura de mai jos.

Orice limbaj de programare modern include instrumente (paratoare) pentru lucrul cu un astfel de arbore. Primind conținut de șir ca intrare, analizatorul XML construiește un arbore de noduri în RAM și efectuează manipulări cu datele arborelui. Avantajul acestei abordări față de analiza linie cu linie este evident: cu o singură interogare la arbore puteți selecta datele necesare fără a parcurge întregul document linie cu linie, deoarece memoria RAM conține o reprezentare completă a elementelor cu toate relatii.

În platforma 1C, modelul DOM este reprezentat de un obiect special DocumentDOM, care la rândul său este construit folosind obiectul BuilderDOM și metoda sa Read. Intrarea în această metodă este de obicei fie un Cititor XML, fie un obiect Cititor HTML, care citește direct conținutul text XML sau HTML din fișiere sau îl încarcă dintr-un șir. Ei bine, atunci există o serie de construcții care vă permit să extrageți date din modelul obiect al documentului citit.

Dintre toate opțiunile, cea mai interesantă din punctul meu de vedere este opțiunea nr. 1 folosind metoda CalculateXPathExpression. Următorul articol îi va fi dedicat.

Avantajele parsării linie cu linie: nevoia de resurse este mai mică. Dezavantaje: este nevoie de mult timp pentru a obține date, trebuie să citiți întregul fișier linie cu linie, complexitate codul programului la analizarea documentelor XML cu structură complexă.

Avantajul eșantionării prin DOM: viteza de eșantionare a datelor, simplitatea codului programului. Dezavantaje: necesită resurse, cheltuiți pentru construcție și interogări către DOM RAMși puterea de procesare.



 


Citire:



De ce procesorul de pe computerul meu devine foarte fierbinte?

De ce procesorul de pe computerul meu devine foarte fierbinte?

Nu am avut de gând să scriu acest articol, am fost îndemnat să-l scriu de multe întrebări despre supraîncălzirea laptopului, curățarea acestuia și înlocuirea pastei termice. Pe...

Ce este modul „Turbo” în browserele moderne: Chrome, Yandex, Opera

Ce este modul „Turbo” în browserele moderne: Chrome, Yandex, Opera

Multe browsere web cunoscute, de exemplu, Yandex.Browser, au un mod special „Turbo”, care poate crește semnificativ viteza...

Cel mai simplu șablon. Șabloane HTML simple. Mamba - șablon de o pagină

Cel mai simplu șablon.  Șabloane HTML simple.  Mamba - șablon de o pagină

Toate șabloanele prezentate pentru site-ul dvs. sunt construite pe versiuni moderne de HTML5 și CSS3. În plus, autorii folosesc astfel de caracteristici la modă precum...

3 baze de informații distribuite

3 baze de informații distribuite

Crearea și configurarea unei baze de date distribuite (RDB) în 1C 8.3 Contabilitate (și alte configurații) este necesară în cazurile în care nu este posibil...

imagine-alimentare RSS