Получение элементов

Получение корневых элементов

let $html = document.documentElement;
let $body = document.body;
let $head = document.head;

По идентификатору

let $element = document.getElementById('element-id');

Метод getElementById может быть вызван только у объекта document. Таким образом, элемент с указанным идентификатором ищется по всему документу.

По атрибуту name

let $namedInputs = document.getElementsByName('named-input');

Метод getElementsByName возвращает не один элемент, а коллекцию элементов (если ничего не нашлось, то пустую коллекцию).

Коллекции похожи на упрощенные массивы, их можно перебирать в цикле.

Метод можно вызывать только у объекта document.

По тегу

let $links = element.getElementsByTagName('a');
let $allTags = document.getElementsByTagName('*');

Метод getElementsByTagName возвращает коллекцию элементов.

Метод можно вызвать как у объекта document (для поиска по всему документу), так и для любого другого DOM-узла. В этом случае поиск будет осуществляться только внутри этого узла.

По имени класса

let $greenElements = element.getElementsByClassName('.green-text');

Так же, как и предыдущий метод, возвращает коллекцию элементов и может быть вызван для любого DOM-узла.

По CSS-селектору

Есть два метода для поиска по селектору:

let $firstElement = element.querySelector('.parent .child');
let $allElements = element.querySelectorAll('.parent .child');

Можно использовать любой валидный CSS-селектор.

Метод querySelectorAll возвращает коллекцию из всех подходящих под селектор элементов.

Метод querySelector находит только первый подходящий элемент и затем прекращает поиск и возвращает его. Если ничего не найдено, вернется null.

Оба метода можно использовать и для всего документа, и внутри конкретного DOM-узла.

Проверка селектора

Можно проверить, подходит ли конкретный element под указанный CSS-селектор:

let isGreenElement = element.matches('.green-text');

Перемещение по дереву элементов

Потомки первого уровня

element.childNodesсодержит все дочерние узлы, в т.ч. текстовые
ТОЛЬКО ДЛЯ ЧТЕНИЯ
element.childrenсодержит все дочерние узлы-элементы
ТОЛЬКО ДЛЯ ЧТЕНИЯ
element.hasChildNodes()есть ли дочерние элементы
element.firstChildпервый дочерний узел
element.childNodes[0]
element.firstElementChildпервый дочерний узел-элемент
element.childNodes[0]
element.lastChildпоследний дочерний узел
element.childNodes[element.childNodes.length - 1]
element.lastElementChildпоследний дочерний узел-элемент
element.childNodes[element.childNodes.length - 1]

Родитель

element.parentNodeродительский узел
document.documentElement.parentNode == document
element.parentElementNodeродительский узел-элемент
document.documentElement.parentElement == null

Все родители

element.closest(cssSelector)ищет ближайший элемент подходящий под селектор (выше по дереву, включая сам element)

Соседи

element.previousSiblingпредыдущий братский узел
element.previouselementSiblingпредыдущий братский узел-элемент
element.nextSiblingследующий братский узел
element.nextElementSiblingследующий братский узел-элемент

Конкретные элементы

Таблицы

table.rowsколлекция строк TR таблицы
table.caption/tHead/tFootссылки на элементы таблицы CAPTION, THEAD, TFOOT
table.tBodiesколлекция элементов таблицы TBODY, по спецификации их может быть несколько
tbody.rowsколлекция строк TR секции
tr.cellsколлекция ячеек TD/TH
tr.sectionRowIndexномер строки в текущей секции THEAD/TBODY
tr.rowIndexномер строки в таблице
td.cellIndexномер ячейки в строке

0 комментариев

Оставить комментарий

*Доступные HTML-теги: a, abbr, blockquote, code, pre, del, i, em, strong, b, strike
*Не будет опубликован