, օրինակ, միջոցով alert(document.getElementById("id").innerHTML), ապա այն կաշխատի IE-ում։
Շարահյուսություն
տարր.ներքին HTML = «հանձնարարված տեքստ»
Օրինակ
Ներքին HTML հատկության փորձարկում
Ներդիր պարբերություն
Փաստաթղթի օբյեկտի մոդելը կամ «DOM»-ը ծրագրավորման ինտերֆեյս է՝ վեբ էջերի տարրեր մուտք գործելու համար: Հիմնականում դա էջի API է, որը թույլ է տալիս կարդալ և շահարկել էջի բովանդակությունը, կառուցվածքը և ոճերը: Տեսնենք, թե ինչպես է այն աշխատում և ինչպես է այն աշխատում:
Ինչպե՞ս է կառուցվում վեբ էջը:
Աղբյուր HTML փաստաթուղթը վերածելու, ոճավորված և ինտերակտիվ էջի վերածելու գործընթացը կոչվում է «Կրիտիկական մատուցման ուղի»: Թեև այս գործընթացը կարելի է բաժանել մի քանի փուլերի, ինչպես ես նկարագրեցի «Հասկանալով կրիտիկական մատուցման ուղին», այս քայլերը կարող են մոտավորապես խմբավորվել երկու քայլի: Առաջինում զննարկիչը վերլուծում է փաստաթուղթը՝ որոշելու, թե ի վերջո ինչ կցուցադրվի էջում, իսկ երկրորդում՝ զննարկիչը կատարում է արտապատկերումը։
Առաջին փուլի արդյունքն այն է, ինչ կոչվում է «ռենդեր ծառ»։ մատուցել ծառ HTML տարրերի ներկայացում է, որոնք կցուցադրվեն էջում և դրանց հարակից ոճերը: Այս ծառը կառուցելու համար զննարկիչին անհրաժեշտ է երկու բան.
- CSSOM, Ներկայացնում է տարրերի հետ կապված ոճերը
- DOM, տարրերի ներկայացում
Ինչից է պատրաստված DOM-ը:
DOM-ը բնօրինակ HTML փաստաթղթի օբյեկտային ներկայացում է: Այն ունի որոշ տարբերություններ, ինչպես կտեսնենք ստորև, բայց ըստ էության այն HTML փաստաթղթի կառուցվածքն ու բովանդակությունը փոխակերպելու փորձ է օբյեկտի մոդելի, որը կարող է օգտագործվել տարբեր ծրագրերի կողմից:
DOM օբյեկտների կառուցվածքը ներկայացված է «հանգույցի ծառ» կոչվողով։ Այն այդպես է անվանվել, քանի որ այն կարելի է պատկերացնել որպես միայնակ ծնող ունեցող ծառ, որը ճյուղավորվում է մի քանի մանկական ճյուղերի, որոնցից յուրաքանչյուրը կարող է ունենալ տերևներ: Այս դեպքում ծնող «տարրը» արմատային տարրն է, մանկական «ճյուղերը»՝ բնադրված տարրեր, իսկ «տերևները»՝ բովանդակությունը տարրերի ներսում։
Եկեք այս HTML փաստաթուղթը վերցնենք որպես օրինակ.
Իմ առաջին վեբ էջը
Բարեւ աշխարհ!
Ինչպես ես?
Այս փաստաթուղթը կարող է ներկայացվել որպես հանգույցների հետևյալ ծառ.
Այն, ինչ DOM-ը չէ
Վերևի օրինակում թվում է, որ DOM-ը բնօրինակ HTML փաստաթղթի 1:1 քարտեզագրումն է: Այնուամենայնիվ, ինչպես ասացի, կան տարբերություններ։ Լիովին հասկանալու համար, թե ինչ է DOM-ը, մենք պետք է նայենք, թե ինչ չէ:
DOM-ը բնօրինակ HTML-ի պատճեն չէ
Չնայած DOM-ը ստեղծվում է HTML փաստաթղթից, այն միշտ չէ, որ նույնն է: Երկու դեպք կա, երբ DOM-ը կարող է տարբերվել սկզբնական HTML-ից:
1. Երբ HTML-ը պարունակում է նշագրման սխալներ
DOM-ը ինտերֆեյս է HTML փաստաթղթի իրական (այսինքն՝ արդեն ցուցադրված) տարրերին մուտք գործելու համար: DOM-ի ստեղծման գործընթացում զննարկիչն ինքը կարող է ուղղել HTML կոդի որոշ սխալներ:
Դիտարկենք այս HTML փաստաթուղթը որպես օրինակ.
Բարեւ աշխարհ!
Փաստաթղթում բացակայում են տարրեր
Եվ , որը HTML-ի պահանջն է։ Բայց եթե նայենք ստացված DOM ծառին, կարող ենք տեսնել, որ սա շտկվել է.
- html
2. Երբ DOM-ը փոփոխվում է Javascript կոդով
Բացի HTML փաստաթղթի բովանդակությունը դիտելու միջերես լինելուց, DOM-ն ինքնին կարող է նաև փոփոխվել:
Մենք կարող ենք, օրինակ, ստեղծել լրացուցիչ հանգույցներ DOM-ի համար՝ օգտագործելով Javascript:
Var newParagraph = document.createElement("p"); var paragraphContent = document.createTextNode («Ես նոր եմ»); newParagraph.appendChild (paragraphContent); document.body.appendChild (newParagraph);
Այս կոդը կփոխի DOM-ը, սակայն փոփոխությունները չեն արտացոլվի HTML փաստաթղթում:
DOM-ն այն չէ, ինչ տեսնում եք զննարկիչում (այսինքն՝ ռենդերի ծառը)
Բրաուզերի տեսադաշտում տեսնում եք render tree-ը, որը, ինչպես ասացի, DOM-ի և CSSOM-ի համադրություն է: DOM-ը տարբերվում է ռենդերի ծառից այն է, որ վերջինս բաղկացած է միայն այն ամենից, ինչ ի վերջո կարտացվի էկրանին:
Քանի որ render ծառը վերաբերում է միայն ցուցադրվողին, այն բացառում է տեսողականորեն թաքնված տարրերը: Օրինակ՝ տարրեր, որոնք ունեն ոճեր ցուցադրում՝ ոչ մի.
Բարեւ աշխարհ!
Ինչպես ես?
DOM-ը կներառի տարրը
Այնուամենայնիվ, render tree-ը և, հետևաբար, այն, ինչ տեսանելի է տեսադաշտում, չի ներառվի այս տարրի մեջ:
DOM-ը այն չէ, ինչ ցուցադրվում է DevTools-ում
Այս տարբերությունը մի փոքր ավելի փոքր է, քանի որ DevTools Element Inspector-ն ապահովում է ամենամոտ մերձեցումը DOM-ին, որը մենք ունենք դիտարկիչում: Այնուամենայնիվ, DevTools տեսուչը պարունակում է Լրացուցիչ տեղեկություն, որը DOM-ում չէ:
Դրա լավագույն օրինակը CSS կեղծ տարրերն են: Սելեկտորների միջոցով ստեղծված կեղծ տարրեր ::նախքանԵվ ::հետո, CSSOM-ի և render tree-ի մի մասն են, բայց տեխնիկապես DOM-ի մաս չեն: Դա պայմանավորված է նրանով, որ DOM-ը ստեղծվում է միայն բնօրինակ HTML փաստաթղթից՝ չներառելով տարրի վրա կիրառվող ոճերը:
Թեև կեղծ տարրերը DOM-ի մաս չեն, դրանք գտնվում են մեր devtools տարրերի տեսուչում:
Ամփոփում
DOM-ը HTML փաստաթղթի միջերես է: Այն օգտագործվում է բրաուզերների կողմից որպես առաջին քայլ՝ որոշելու, թե ինչ պետք է ցուցադրել դիտակետում և Javascript կոդըփոխել էջի բովանդակությունը, կառուցվածքը կամ ոճը:
Ցանկացած բացելիս HTML փաստաթուղթզննարկիչը նախ վերլուծում է իր բովանդակությունը և այս վերլուծության հիման վրա ստեղծում է HTML փաստաթղթի օբյեկտի մոդելըկամ ավելի կարճ DOM.
DOM-ը կազմված է հիերարխիկորեն տեղակայված օբյեկտներից, որոնք կոչվում են հանգույցներ. Կառուցվածքի յուրաքանչյուր հանգույց ներկայացնում է a HTML էջտարր.
Օգտագործելով DOM-ը կարող եք փոխազդել ( կարդալ, փոփոխել, ջնջել) HTML փաստաթղթերի բովանդակությամբ սկրիպտներից:
Ստորև բերված է փաստաթղթի HTML կոդը և DOM-ը, որը կստեղծվի զննարկչի կողմից այս կոդի հիման վրա.
HTML DOM
HTML DOM.
Բարեւ բոլորին.
Նկարում ներկայացված բոլոր ուղղանկյունները առարկաներ են (կամ հանգույցներ): Հանգույցները տարբեր տիպ.
Փաստաթղթի հանգույցը նշված է կարմիրով: DOM-ի ցանկացած զանգ պետք է սկսվի այս հանգույցին զանգով:
Նշված է կանաչով տարրի հանգույցներ. Էջի յուրաքանչյուր HTML տարրի համար զննարկիչը ստեղծում է համապատասխան տարրերի հանգույց։
Տարրերի բովանդակությունը պահվում է տեքստային հանգույցներ. Մեր դիագրամում տեքստային հանգույցները նշված են կապույտով:
Յուրաքանչյուրի համար HTML հատկանիշտարր է ստեղծվում հատկանիշի հանգույց. Դիագրամում հատկանիշի հանգույցը նշված է վարդագույնով:
Նշում:մի մոռացեք, որ տեքստը միշտ պահվում է տեքստային հանգույցներում, այլ ոչ թե տարրի հատկություն: Նրանք. HTML տարրի բովանդակություն մուտք գործելու համար դուք պետք է մուտք գործեք դրա տեքստային հանգույցի հատկությունը:
Հանգույցների միջև հարաբերությունները
Օբյեկտի կառուցվածքի հանգույցները կապված են միմյանց հետ: Հանգույցների միջև հարաբերությունները նկարագրելու համար կան մի քանի հատուկ տերմիններ.
ծնող հանգույց ( ծնող հանգույց)
- դիտարկվող օբյեկտի հետ կապված մայր հանգույցը այն հանգույցն է, որում գտնվում է դիտարկվող օբյեկտը: Մեր սխեմայի վրա՝ կապված հանգույցների հետ
Եվ
ծնող է. Հանգույցի համար հանգույցը ծնող է .
Մանկական հանգույցներ ( մանկական հանգույց)
- դիտարկվող օբյեկտի նկատմամբ հետնորդ հանգույցը այն հանգույցն է, որը գտնվում է դիտարկվող օբյեկտի մեջ: Մեր դիագրամի վրա՝ կապված հանգույցի հետ
Եվ
Նրանք ժառանգներ են։ Հանգույցի համար
ժառանգ է .
Եղբայր կամ եղբայրական հանգույցներ ( եղբայրական հանգույց)
- հանգույցներ, որոնք գտնվում են նույն բույն մակարդակի վրա իրենց մայր հանգույցի նկատմամբ: Մեր դիագրամում եղբայրական հանգույցներն են
Եվ , DOM-ի ամենավերին հանգույցը կոչվում է արմատ. Մեր դիագրամում արմատն է (քանի որ փաստաթղթի օբյեկտը DOM-ի մաս չէ):
W3C
DOM ստեղծողներ
Նախքան DOM տեխնոլոգիան սովորելը, դուք արդեն պետք է իմանաք HTML-ի, CSS-ի հիմունքները և, բացի այդ, պետք է կարդալ հոդվածներ HTML ձևերի մասին (իմանաք, թե ինչպես ստեղծել կոճակներ, տեքստային դաշտեր և այլն):
DOM (փաստաթղթի օբյեկտի մոդել)- փաստաթղթի օբյեկտի մոդել, ստեղծված W3C-ի կողմից ( աշխարհով մեկՎեբ կոնսորցիումը Համաշխարհային սարդոստայնի կոնսորցիում է:
DOMվեբ տեխնոլոգիա է, որը թույլ է տալիս կառավարել էջի HTML թեգերը JavaScript լեզվի միջոցով: DOM-ը ներկայացնում է HTML թեգերը որպես հատկություններ և մեթոդներ ունեցող օբյեկտներ: Յուրաքանչյուր HTML թեգ (օբյեկտ) HTML էջի վրա, DOM-ի շնորհիվ, ունի իր յուրահատուկ հասցեն։ Մուտք գործելով այս հասցե՝ JavaScript-ը կարող է կառավարել HTML պիտակ.
DOM-ում հասցեները ստեղծվում են ավտոմատ կերպով, բայց դրանք չափազանց երկար են և բարդ: Հետևաբար, DOM-ի ստեղծողները հնարավորություն են տվել վեբ ծրագրավորողներին ինքնուրույն գրել կարճ հասցեներ՝ id (եզակի նույնացուցիչ) ընտրիչի միջոցով:
Ինչպես է աշխատում DOM-ը
Բրաուզերը, HTML էջը բացելիս, իր թեգերի հիման վրա ստեղծում է DOM կառուցվածք, որտեղ յուրաքանչյուր HTML թեգ հայտնվում է որպես իր յուրահատուկ հասցեով օբյեկտ։ DOM կառուցվածքը նույնպես կոչվում է DOM ծառ, այս ծառը բաղկացած է հանգույցներից, որոնք HTML թեգեր, ատրիբուտներ, տեքստ են։
DOM-ի պատմություն
Սկզբում DOM-ը ստանդարտացված չէր, և այդ ժամանակ գոյություն ունեցող երկու բրաուզերները՝ Netscape Navigator և Internet Explorer, ինքնուրույն ստեղծել են DOM-ը: Այն ժամանակ վեբ ծրագրավորողները պետք է սովորեին DOM-ի երկու տարբերակ:
Վրա այս պահին, W3C-ը ստանդարտացրել է DOM-ը, և բոլոր բրաուզերները փորձում են հավատարիմ մնալ այս ստանդարտին: