DOM дозволÑÑ Ð½Ð°Ð¼ ÑобиÑи бÑдÑ-Ñо з елеменÑами Ñа ÑÑ Ð²Ð¼ÑÑÑом, але ÑпоÑаÑÐºÑ Ð½Ð°Ð¼ поÑÑÑбно оÑÑимаÑи вÑдповÑдний DOM обâÑкÑ.
УÑÑ Ð¾Ð¿ÐµÑаÑÑÑ Ð· DOM поÑинаÑÑÑÑÑ Ð· обâÑкÑа document. Це головна âÑоÑка вÑ
одÑâ в DOM. РнÑого ми можемо оÑÑимаÑи доÑÑÑп до бÑдÑ-Ñкого вÑзла.
ÐÑÑ Ñак виглÑдаÑÑÑ Ð¾ÑÐ½Ð¾Ð²Ð½Ñ Ð¿Ð¾ÑиланнÑ, ÑÐºÑ Ð´Ð¾Ð·Ð²Ð¾Ð»ÑÑÑÑ Ð¿ÐµÑемÑÑаÑиÑÑ Ð¼Ñж вÑзлами DOM:
ÐбговоÑимо ÑÑ Ð±ÑлÑÑ Ð´ÐµÑалÑно.
ÐвеÑÑ Ñ: documentElement Ñ body
ÐайвиÑÑ Ð²Ñзли деÑева доÑÑÑÐ¿Ð½Ñ Ð±ÐµÐ·Ð¿Ð¾ÑеÑеднÑо Ñк влаÑÑивоÑÑÑ document:
<html>=document.documentElement- ÐайвиÑий вÑзол докÑменÑа â
document.documentElement. Ð DOM вÑн вÑдповÑÐ´Ð°Ñ ÑегÑ<html>. <body>=document.body- ÐнÑим ÑиÑоко викоÑиÑÑовÑваним вÑзлом DOM Ñ ÐµÐ»ÐµÐ¼ÐµÐ½Ñ
<body>âdocument.body. <head>=document.head- Тег
<head>доÑÑÑпний Ñкdocument.head.
document.body може бÑÑи nullСкÑÐ¸Ð¿Ñ Ð½Ðµ може оÑÑимаÑи доÑÑÑп до елеменÑа, Ñкий не ÑÑнÑÑ Ð½Ð° Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÑÑого ÑкÑипÑа.
ÐокÑема, ÑкÑо ÑкÑÐ¸Ð¿Ñ Ð·Ð½Ð°Ñ
одиÑÑÑÑ Ð²ÑеÑÐµÐ´Ð¸Ð½Ñ <head>, Ñо document.body недоÑÑÑпний, оÑкÑлÑки бÑаÑÐ·ÐµÑ Ñе не пÑоÑиÑав його.
ÐÑже, Ñ Ð¿ÑÐ¸ÐºÐ»Ð°Ð´Ñ Ð½Ð¸Ð¶Ñе пеÑÑий alert виведе null:
<html>
<head>
<script>
alert( "ЯкÑо Ñ HEAD: " + document.body ); // null, Ñе Ð½ÐµÐ¼Ð°Ñ <body>
</script>
</head>
<body>
<script>
alert( "ЯкÑо Ñ BODY: " + document.body ); // HTMLBodyElement, ÑÐµÐ¿ÐµÑ body ÑÑнÑÑ
</script>
</body>
</html>
null ознаÑÐ°Ñ âне ÑÑнÑÑâУ DOM знаÑÐµÐ½Ð½Ñ null ознаÑÐ°Ñ âне ÑÑнÑÑâ або âÑакого вÑзла немаÑâ.
ÐоÑÑÑÐ½Ñ Ð²Ñзли: childNodes, firstChild, lastChild
ÐÑдÑÐµÐ¿ÐµÑ Ð¼Ð¸ бÑдемо викоÑиÑÑовÑваÑи два ÑеÑмÑни:
- ÐоÑÑÑÐ½Ñ Ð²Ñзли (або дÑÑи) â елеменÑи, ÑÐºÑ Ñ Ð±ÐµÐ·Ð¿Ð¾ÑеÑеднÑми дÑÑÑми. ÐнÑими Ñловами, вони Ð²ÐºÐ»Ð°Ð´ÐµÐ½Ñ Ñаме в Ñей вÑзол. ÐапÑиклад,
<head>Ñ<body>Ñ Ð´Ð¾ÑÑÑнÑми елеменÑами<html>. - ÐаÑадки â вÑÑ ÐµÐ»ÐµÐ¼ÐµÐ½Ñи, ÑÐºÑ Ð²ÐºÐ»Ð°Ð´ÐµÐ½Ñ Ð² даний, вклÑÑаÑÑи дÑÑей, ÑÑ Ð½ÑÑ Ð´ÑÑей ÑоÑо.
ÐапÑиклад, ÑÑÑ <body> Ð¼Ð°Ñ Ð´Ð¾ÑÑÑÐ½Ñ <div> Ñ <ul> (Ñ ÐºÑлÑка пÑÑÑиÑ
ÑекÑÑовиÑ
вÑзлÑв):
<html>
<body>
<div>Begin</div>
<ul>
<li>
<b>Information</b>
</li>
</ul>
</body>
</html>
â¦Ð наÑадками <body> Ñ Ð½Ðµ ÑÑлÑки пÑÑÐ¼Ñ Ð´Ð¾ÑÑÑÐ½Ñ ÐµÐ»ÐµÐ¼ÐµÐ½Ñи <div>, <ul>, але й бÑлÑÑ Ð³Ð»Ð¸Ð±Ð¾ÐºÐ¾ Ð²ÐºÐ»Ð°Ð´ÐµÐ½Ñ ÐµÐ»ÐµÐ¼ÐµÐ½Ñи, ÑÐ°ÐºÑ Ñк <li> (доÑÑÑнÑй ÐµÐ»ÐµÐ¼ÐµÐ½Ñ <ul>) Ñа <b> (доÑÑÑнÑй ÐµÐ»ÐµÐ¼ÐµÐ½Ñ <li>) â ÑобÑо ÑÑÑ ÐµÐ»ÐµÐ¼ÐµÐ½Ñи пÑддеÑева.
ÐолекÑÑÑ childNodes мÑÑÑиÑÑ ÑпиÑок ÑÑÑÑ
доÑÑÑнÑÑ
вÑзлÑв, вклÑÑаÑÑи ÑекÑÑÐ¾Ð²Ñ Ð²Ñзли.
Ðаведений нижÑе пÑиклад показÑÑ Ð´Ð¾ÑÑÑÐ½Ñ ÐµÐ»ÐµÐ¼ÐµÐ½Ñи document.body:
<html>
<body>
<div>ÐоÑаÑок</div>
<ul>
<li>ÐнÑоÑмаÑÑÑ</li>
</ul>
<div>ÐÑнеÑÑ</div>
<script>
for (let i = 0; i < document.body.childNodes.length; i++) {
alert( document.body.childNodes[i] ); // Text, DIV, Text, UL, ..., SCRIPT
}
</script>
...ÑоÑÑ Ñе...
</body>
</html>
ÐвеÑнÑÑÑ ÑÐ²Ð°Ð³Ñ Ð½Ð° ÑÑÐºÐ°Ð²Ñ Ð´ÐµÑалÑ. ЯкÑо ми запÑÑÑимо наведений виÑе пÑиклад, оÑÑаннÑм показаним елеменÑом бÑде <script>. ÐаÑпÑÐ°Ð²Ð´Ñ Ð½Ð¸Ð¶Ñе в докÑменÑÑ Ñ Ð±ÑлÑÑе кодÑ, але на Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÑкÑипÑÑ Ð±ÑаÑÐ·ÐµÑ Ð¹Ð¾Ð³Ð¾ Ñе не пÑоÑиÑав, ÑÐ¾Ð¼Ñ ÑкÑÐ¸Ð¿Ñ Ð¹Ð¾Ð³Ð¾ не баÑиÑÑ.
ÐлаÑÑивоÑÑÑ firstChild Ñ lastChild надаÑÑÑ Ñвидкий доÑÑÑп до пеÑÑого Ñа оÑÑаннÑого доÑÑÑнÑого вÑзла.
Це лиÑе ÑкоÑоÑеннÑ. ЯкÑо ÑÑнÑÑÑÑ Ð´Ð¾ÑÑÑÐ½Ñ Ð²Ñзли, Ñо завжди вÑÑно наÑÑÑпне:
elem.childNodes[0] === elem.firstChild
elem.childNodes[elem.childNodes.length - 1] === elem.lastChild
ÐÑнÑÑ Ñакож ÑпеÑÑалÑна ÑÑнкÑÑÑ elem.hasChildNodes(), Ñо пеÑевÑÑÑÑ, Ñи Ñ Ð²Ð·Ð°Ð³Ð°Ð»Ñ Ð´Ð¾ÑÑÑÐ½Ñ Ð²Ñзли.
DOM колекÑÑÑ
Як баÑимо, childNodes виглÑÐ´Ð°Ñ Ñк маÑив. Ðле наÑпÑÐ°Ð²Ð´Ñ Ñе не маÑив, а ÑкоÑÑÑе колекÑÑÑ â ÑпеÑÑалÑний ÑÑеÑаÑивний обâÑкÑ-пÑевдомаÑив.
Рдва Ð²Ð°Ð¶Ð»Ð¸Ð²Ð¸Ñ Ð½Ð°ÑлÑдки з ÑÑого:
- Ðи можемо викоÑиÑÑовÑваÑи
for..of, Ñоб пеÑебиÑаÑи його:
for (let node of document.body.childNodes) {
alert(node); // показÑÑ Ð²ÑÑ Ð²Ñзли з колекÑÑÑ
}
Це пÑаÑÑÑ, бо колекÑÑÑ Ñ ÑÑеÑованим обâÑкÑом (Ñ Ð¿Ð¾ÑÑÑбний Ð´Ð»Ñ ÑÑого меÑод Symbol.iterator).
- ÐеÑоди маÑÐ¸Ð²Ñ Ð½Ðµ пÑаÑÑваÑимÑÑÑ, бо колекÑÑÑ Ñе не маÑив:
alert(document.body.childNodes.filter); // undefined (меÑÐ¾Ð´Ñ filter немаÑ!)
ÐеÑÑий наÑлÑдок пÑиÑмний, з дÑÑгим можна змиÑиÑиÑÑ, оÑкÑлÑки ми можемо викоÑиÑÑовÑваÑи Array.from Ð´Ð»Ñ ÑÑвоÑÐµÐ½Ð½Ñ âÑпÑавжнÑогоâ маÑÐ¸Ð²Ñ Ð· колекÑÑÑ, ÑкÑо нам поÑÑÑÐ±Ð½Ñ Ð¼ÐµÑоди маÑивÑ:
alert( Array.from(document.body.childNodes).filter ); // function
ÐолекÑÑÑ DOM Ñ Ð½Ð°Ð²ÑÑÑ Ð±ÑлÑÑе â вÑÑ Ð²Ð»Ð°ÑÑивоÑÑÑ Ð½Ð°Ð²ÑгаÑÑÑ, пеÑелÑÑÐµÐ½Ñ Ð² ÑÑÐ¾Ð¼Ñ ÑоздÑлÑ, доÑÑÑÐ¿Ð½Ñ Ð»Ð¸Ñе Ð´Ð»Ñ Ð·ÑиÑÑваннÑ.
Ðи не можемо замÑниÑи доÑÑÑнÑй ÐµÐ»ÐµÐ¼ÐµÐ½Ñ Ð½Ð° ÑоÑÑ ÑнÑе, пÑизнаÑивÑи childNodes[i] = ....
ÐÐ»Ñ Ð·Ð¼Ñни DOM поÑÑÑÐ±Ð½Ñ ÑнÑÑ Ð¼ÐµÑоди. Ðи ÑозбеÑемо ÑÑ Ñ Ð½Ð°ÑÑÑÐ¿Ð½Ð¾Ð¼Ñ ÑоздÑлÑ.
Ðайже вÑÑ ÐºÐ¾Ð»ÐµÐºÑÑÑ DOM, за незнаÑними винÑÑками, Ñ Ð¶Ð¸Ð²Ð¸Ð¼Ð¸. ÐнÑими Ñловами, вони завжди вÑдобÑажаÑÑÑ Ð¿Ð¾ÑоÑний ÑÑан DOM.
ЯкÑо ми збеÑегли поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° elem.childNodes Ñ Ð¿ÑÑÐ»Ñ ÑÑого додамо/видалимо вÑзли в DOM, вони авÑомаÑиÑно зâÑвлÑÑÑÑÑ Ð² колекÑÑÑ.
for..in Ð´Ð»Ñ Ð¿ÐµÑебоÑÑ ÐºÐ¾Ð»ÐµÐºÑÑйÐолекÑÑÑ Ð¼Ð¾Ð¶Ð½Ð° пеÑебиÑаÑи за Ð´Ð¾Ð¿Ð¾Ð¼Ð¾Ð³Ð¾Ñ for..of. Ðле ÑÐ½Ð¾Ð´Ñ Ð»Ñди намагаÑÑÑÑÑ Ð²Ð¸ÐºÐ¾ÑиÑÑовÑваÑи Ð´Ð»Ñ ÑÑого for..in.
ÐÑÐ´Ñ Ð»Ð°Ñка, не ÑÑеба. Цикл for..in пеÑебиÑÐ°Ñ Ð²ÑÑ Ð²Ð»Ð°ÑÑивоÑÑÑ Ð±ÐµÐ· виклÑÑеннÑ. РколекÑÑÑ Ð¼Ð°ÑÑÑ Ð´ÐµÑÐºÑ âдодаÑковÑâ ÑÑдко викоÑиÑÑовÑÐ²Ð°Ð½Ñ Ð²Ð»Ð°ÑÑивоÑÑÑ, ÑÐºÑ Ð¼Ð¸ зазвиÑай не Ñ
оÑемо оÑÑимÑваÑи:
<body>
<script>
// показÑÑ 0, 1, length, item, values Ñ Ð±ÑлÑÑе.
for (let prop in document.body.childNodes) alert(prop);
</script>
</body>
СÑÑÑди Ñа баÑÑкÑвÑÑкий вÑзол
СÑÑÑди, або ÑÑÑÑÐ´Ð½Ñ Ð²Ñзли â Ñе вÑзли, ÑÐºÑ Ñ Ð½Ð°Ñадками одного баÑÑка.
ÐапÑиклад, ÑÑÑ <head> Ñ <body> Ñ ÑÑÑÑдами:
<html>
<head>...</head><body>...</body>
</html>
<body>вважаÑÑÑÑÑ âнаÑÑÑпнимâ або ÑÑÑÑдом âпÑавоÑÑÑâ длÑ<head>,<head>вважаÑÑÑÑÑ âпопеÑеднÑмâ або ÑÑÑÑдом âлÑвоÑÑÑâ длÑ<body>.
ÐаÑÑÑпний ÑÑÑÑд знаÑ
одиÑÑÑÑ Ñ Ð²Ð»Ð°ÑÑивоÑÑÑ nextSibling, а попеÑеднÑй â Ñ previousSibling.
ÐаÑÑкÑвÑÑкий вÑзол доÑÑÑпний Ñк parentNode.
ÐапÑиклад:
// баÑÑком <body> Ñ <html>
alert( document.body.parentNode === document.documentElement ); // true
// пÑÑÐ»Ñ <head> Ñде <body>
alert( document.head.nextSibling ); // HTMLBodyElement
// пÑÑÐ»Ñ <body> Ñде <head>
alert( document.body.previousSibling ); // HTMLHeadElement
ÐавÑгаÑÑÑ Ð»Ð¸Ñе за елеменÑами
ÐлаÑÑивоÑÑÑ Ð½Ð°Ð²ÑгаÑÑÑ, пеÑеÑаÑ
Ð¾Ð²Ð°Ð½Ñ Ð²Ð¸Ñе, вÑдноÑÑÑÑÑÑ Ð´Ð¾ вÑÑÑ
вÑзлÑв в докÑменÑÑ. ÐапÑиклад, Ñ childNodes ми можемо побаÑиÑи Ñк ÑекÑÑÐ¾Ð²Ñ Ð²Ñзли, Ñак Ñ Ð²Ñзли елеменÑÑв Ñ Ð½Ð°Ð²ÑÑÑ Ð²Ñзли коменÑаÑÑв, ÑкÑо вони ÑÑнÑÑÑÑ.
Ðле Ð´Ð»Ñ Ð±Ð°Ð³Ð°ÑÑÐ¾Ñ Ð·Ð°Ð´Ð°Ñ Ð½Ð°Ð¼ не поÑÑÑÐ±Ð½Ñ ÑекÑÑÐ¾Ð²Ñ Ð²Ñзли Ñи вÑзли коменÑаÑÑв. Ðи Ñ Ð¾Ñемо манÑпÑлÑваÑи вÑзлами елеменÑÑв, ÑÐºÑ Ð¿ÑедÑÑавлÑÑÑÑ Ñеги Ñа ÑоÑмÑÑÑÑ ÑÑÑÑкÑÑÑÑ ÑÑоÑÑнки.
Тож давайÑе ÑозглÑнемо додаÑковий набÑÑ Ð¿Ð¾ÑиланÑ, ÑÐºÑ Ð²ÑÐ°Ñ Ð¾Ð²ÑÑÑÑ Ð»Ð¸Ñе вÑзли-елеменÑи:
ÐоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð¿Ð¾Ð´ÑÐ±Ð½Ñ Ð´Ð¾ наведениÑ
виÑе, лиÑе Ñз Ñловом Element вÑеÑединÑ:
childrenâ колекÑÑÑ Ð´ÑÑей, ÑÐºÑ Ñ ÐµÐ»ÐµÐ¼ÐµÐ½Ñами.firstElementChild,lastElementChildâ пеÑÑий Ñ Ð¾ÑÑаннÑй доÑÑÑÐ½Ñ ÐµÐ»ÐµÐ¼ÐµÐ½Ñи.previousElementSibling,nextElementSiblingâ ÑÑÑÑÐ´Ð½Ñ ÐµÐ»ÐµÐ¼ÐµÐ½Ñи.parentElementâ баÑÑкÑвÑÑкий елеменÑ.
parentElement? Чи може баÑÑко бÑÑи не елеменÑом?ÐлаÑÑивÑÑÑÑ parentElement повеÑÑÐ°Ñ Ð±Ð°ÑÑкÑвÑÑкий ÐµÐ»ÐµÐ¼ÐµÐ½Ñ âelementâ, ÑÐ¾Ð´Ñ Ñк parentNode повеÑÑÐ°Ñ Ð±Ð°ÑÑкÑвÑÑкий âбÑдÑ-Ñкий вÑзолâ. Ð¦Ñ Ð²Ð»Ð°ÑÑивоÑÑÑ Ð·Ð°Ð·Ð²Ð¸Ñай однаковÑ: Ð¾Ð±Ð¸Ð´Ð²Ñ Ð²Ð¾Ð½Ð¸ оÑÑимÑÑÑÑ Ð±Ð°ÑÑкÑвÑÑкий елеменÑ.
Ðа винÑÑком document.documentElement:
alert( document.documentElement.parentNode ); // document
alert( document.documentElement.parentElement ); // null
ÐÑиÑина в ÑомÑ, Ñо коÑеневий вÑзол document.documentElement (<html>) Ð¼Ð°Ñ document Ñк баÑÑкÑвÑÑкий. Ðле вÑн Ð¼Ð°Ñ Ñип document â Ñе не елеменÑ, ÑÐ¾Ð¼Ñ parentNode повеÑÑÐ°Ñ Ð¹Ð¾Ð³Ð¾, а parentElement нÑ.
Ð¦Ñ Ð´ÐµÑÐ°Ð»Ñ Ð¼Ð¾Ð¶Ðµ бÑÑи коÑиÑноÑ, коли ми Ñ
оÑемо пеÑейÑи вÑд довÑлÑного елеменÑа elem до <html>, але не до document:
while(elem = elem.parentElement) { // Ñдемо вгоÑÑ, поки не дÑйдемо до <html>
alert( elem );
}
ÐавайÑе змÑнимо один Ñз пÑикладÑв виÑе: замÑнимо childNodes на children. Ð¢ÐµÐ¿ÐµÑ Ð²Ñн показÑÑ Ð»Ð¸Ñе елеменÑи:
<html>
<body>
<div>Begin</div>
<ul>
<li>Information</li>
</ul>
<div>End</div>
<script>
for (let elem of document.body.children) {
alert(elem); // DIV, UL, DIV, SCRIPT
}
</script>
...
</body>
</html>
Ще коÑиÑÐ½Ð¸Ñ Ð²Ð»Ð°ÑÑивоÑÑей: ÑаблиÑÑ
Ðо ÑÐ¸Ñ Ð¿ÑÑ Ð¼Ð¸ опиÑали оÑÐ½Ð¾Ð²Ð½Ñ Ð²Ð»Ð°ÑÑивоÑÑÑ Ð´Ð»Ñ Ð½Ð°Ð²ÑгаÑÑÑ.
ÐеÑÐºÑ Ñипи елеменÑÑв DOM можÑÑÑ Ð½Ð°Ð´Ð°Ð²Ð°Ñи додаÑÐºÐ¾Ð²Ñ Ð²Ð»Ð°ÑÑивоÑÑÑ, ÑпеÑиÑÑÑÐ½Ñ Ð´Ð»Ñ ÑÑ ÑипÑ, Ð´Ð»Ñ Ð·ÑÑÑноÑÑÑ.
ТаблиÑÑ Ñ ÑÑдовим пÑикладом ÑÑого Ñ Ð¿ÑедÑÑавлÑÑÑÑ Ð¾Ñобливо важливий випадок:
ÐлеменÑ<table> пÑдÑÑимÑÑ (на додаÑок до наведениÑ
виÑе) ÑÐ°ÐºÑ Ð²Ð»Ð°ÑÑивоÑÑÑ:
table.rowsâ колекÑÑÑ ÑÑдкÑв<tr>ÑаблиÑÑ.table.caption/tHead/tFootâ поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° елеменÑи<caption>,<thead>,<tfoot>.table.tBodiesâ колекÑÑÑ ÐµÐ»ÐµÐ¼ÐµÐ½ÑÑв<tbody>(за ÑÑандаÑÑом може бÑÑи багаÑо, але завжди бÑде пÑÐ¸Ð½Ð°Ð¹Ð¼Ð½Ñ Ð¾Ð´Ð¸Ð½ â навÑÑÑ ÑкÑо його Ð½ÐµÐ¼Ð°Ñ Ñ Ð²Ð¸Ñ ÑÐ´Ð½Ð¾Ð¼Ñ HTML, бÑаÑÐ·ÐµÑ Ð¿Ð¾Ð¼ÑÑÑиÑÑ Ð¹Ð¾Ð³Ð¾ в DOM).
ÐлеменÑи <thead>, <tfoot>, <tbody> забезпеÑÑÑÑÑ Ð²Ð»Ð°ÑÑивÑÑÑÑ rows:
tbody.rowsâ колекÑÑÑ ÑÑдкÑв<tr>вÑеÑединÑ.
<tr>:
tr.cellsâ колекÑÑÑ ÐºÐ»ÑÑинок<td>Ñ<th>вÑеÑÐµÐ´Ð¸Ð½Ñ Ð·Ð°Ð´Ð°Ð½Ð¾Ð³Ð¾ ÑÑдка<tr>.tr.sectionRowIndexâ позиÑÑÑ (ÑндекÑ) заданого<tr>вÑеÑÐµÐ´Ð¸Ð½Ñ Ð±Ð°ÑÑкÑвÑÑкого<thead>/<tbody>/<tfoot>.tr.rowIndexâ Ð½Ð¾Ð¼ÐµÑ (ÑндекÑ) ÑÑдка<tr>Ñ ÑаблиÑÑ Ð² ÑÑÐ»Ð¾Ð¼Ñ (вÑÐ°Ñ Ð¾Ð²ÑÑÑи вÑÑ ÑÑдки ÑаблиÑÑ Ð±ÐµÐ· виклÑÑеннÑ).
<td> Ñ <th>:
td.cellIndexâ Ð½Ð¾Ð¼ÐµÑ ÐºÐ»ÑÑинки Ñ ÑÑдкÑ<tr>.
ÐÑиклад викоÑиÑÑаннÑ:
<table id="table">
<tr>
<td>one</td><td>two</td>
</tr>
<tr>
<td>three</td><td>four</td>
</tr>
</table>
<script>
// оÑÑимаÑи td з "two" (пеÑÑий ÑÑдок, дÑÑга колонка)
let td = table.rows[0].cells[1];
td.style.backgroundColor = "red"; // видÑлиÑи ÑеÑвоним
</script>
СпеÑиÑÑкаÑÑÑ: ÑаблиÑÐ½Ñ Ð´Ð°Ð½Ñ.
ÐÑнÑÑÑÑ Ñакож додаÑÐºÐ¾Ð²Ñ Ð²Ð»Ð°ÑÑивоÑÑÑ Ð½Ð°Ð²ÑгаÑÑÑ Ð´Ð»Ñ HTML-ÑоÑм. Ðи ÑозглÑнемо ÑÑ Ð¿ÑзнÑÑе, коли поÑнемо пÑаÑÑваÑи з ÑоÑмами.
ÐÑдÑÑмки
ÐÐ»Ñ Ð²Ñзла DOM, ми можемо пеÑейÑи до його безпоÑеÑеднÑÑ ÑÑÑÑдÑв за Ð´Ð¾Ð¿Ð¾Ð¼Ð¾Ð³Ð¾Ñ Ð²Ð»Ð°ÑÑивоÑÑей навÑгаÑÑÑ.
ÐÑнÑÑ Ð´Ð²Ð° оÑÐ½Ð¾Ð²Ð½Ð¸Ñ Ð½Ð°Ð±Ð¾Ñи:
- ÐÐ»Ñ Ð²ÑÑÑ
вÑзлÑв:
parentNode,childNodes,firstChild,lastChild,previousSibling,nextSibling. - ÐиÑе Ð´Ð»Ñ Ð²ÑзлÑв елеменÑÑв:
parentElement,children,firstElementChild,lastElementChild,previousElementSibling,nextElementSibling.
ÐеÑÐºÑ Ñипи елеменÑÑв DOM (напÑиклад, ÑаблиÑÑ) надаÑÑÑ Ð´Ð¾Ð´Ð°ÑÐºÐ¾Ð²Ñ Ð²Ð»Ð°ÑÑивоÑÑÑ Ñа колекÑÑÑ Ð´Ð»Ñ Ð´Ð¾ÑÑÑÐ¿Ñ Ð´Ð¾ ÑÑ Ð²Ð¼ÑÑÑÑ.
ÐоменÑаÑÑ
<code>, Ð´Ð»Ñ ÐºÑлÑÐºÐ¾Ñ ÑÑдкÑв â обгоÑнÑÑÑ ÑÑ Ñегом<pre>, Ð´Ð»Ñ Ð¿Ð¾Ð½Ð°Ð´ 10 ÑÑдкÑв â викоÑиÑÑовÑйÑе пÑÑоÑниÑÑ (plnkr, jsbin, codepenâ¦)