Page 294 - Браун Э. - Изучаем JavaScript. Руководство по созданию современных веб-сайтов - 2017
P. 294
и
Немного терм н ологии
Концепция дерева проста и интуитивно понятна, что ведет к интуитивно по
нятной терминологии. Родитель узла - это его прямой (direct) предок (т.е. не "де
)
душка"), а дочерний узел - это прямой потомок (т.е. не "внук" . Термин потомок
(descendant) используется для описания дочернего или дочернего для дочернего узла
или еще более дальнего. Термин предок (ancestor) используется для описания родите
ля, родителя родителя и т.д.
Методы-получатели модели DOM
Модель DOM предоставляет методы-получатели (get . . . ), которые позволяют
быстро находить определенные элементы HTML.
e
n
g
Первый из них - это метод docum n t . e t E l e me t B y i d . Каждому НТМL
элементу на веб-странице может быть присвоен уникальный идентификатор, а метод
document . getElementByid позволяет получить этот элемент по его идентификатору.
t
document . getElementByid ( ' conten ' ) ; / / <div id="conte t " > . . . </div>
n
Браузеры не делают ничего для проверки уникальности идентифика
торов (хотя НТМL-валидатор эти проблемы учитывает), поэтому со
блюдение уникальности идентификаторов возложено исключительно
на вас. Поскольку создание веб-страниц (с компонентами, получае-
мыми из разных источников) становится все более и более сложной
задачей, все более и более усложняется задача избежания повторов
идентификаторов. Поэтому я рекомендую использовать идентифика
торы экономно и очень внимательно.
Метод document . getElementsByClas sName возвращает коллекцию элементов,
у которых есть заданное имя класса.
t
t
const callouts = docurnen . getElementsByClassName ( ' callou ' ) ;
Метод document . getElementsByTagName возвращает коллекцию элементов, у ко
торых есть заданное имя дескриптора.
const paragraphs = docurnent . getElementsByTagName ( ' p ' ) ;
Все методы DOM, которые возвращают коллекцию, фактически воз
вращают не массив JavaScript, а экземпляр объекта HTMLCollection,
который "подобен массиву': Вы можете перебрать его в цикле for,
но методы Array . prototype (такие, как map, fil ter и reduce), не
будут доступны. Вы можете преобразовать объект HTMLCo l e ction
l
.
в массив, используя оператор р а сширения [ . . d o c u m n t .
e
getElementsByTagName (р) ] .
Немного терминологии 297

