codeisart.

JS Core

«child» — получение списка дочерних узлов

Второй параметр логического типа так же необязателен и используется для переключения режима поиска дочерних элементов. Может принимать пустое значение или true . Если…

В этой статье
DOM-дерево: родитель, дочерние элементы и соседние элементы.
Связи между элементами DOM. Текстовые узлы на схеме не показаны.

Функция child возвращает массив дочерних элементов текущего узла.

Входные параметры

  1. Первый параметр используется для выбора элементов по имени тега. Необязательный.

    • child() — без фильтра по имени тега, функция вернёт дочерние элементы. Текстовые узлы и комментарии не являются элементами.
    • child('div') — cтрока с именем тега, функция вернет массив дочерних узлов с именем тега DIV.
    • child('div h1 p') — строка со списком имен тегов, разделенных пробелами, функция вернет массив дочерних элементов с именами тегов DIV, H1 и P.
    • child(['div', 'h1', 'p']) — массив строк с именами тегов, результат выполнения функции аналогичен предыдущему пункту.
  2. Второй параметр логического типа так же необязателен и используется для переключения режима поиска дочерних элементов. Может принимать пустое значение или true. Если указано значение true, то будут выбраны все дочерние элементы, текущего узла, соответствующие критериям поиска, указанным в первом параметре, иначе — только непосредственно дочерние по отношению к текущему узлу. Допускается сочетание этого параметра со всеми вариантами первого параметра:

    • child(true)
    • child('div', true)
    • child('div h1 p', true)
    • child(['div', 'h1', 'p'], true)

Пример использования

var childArray = $('test').child('li');

В переменную childArray будет помещен массив элементов, с именем тега LI, являющихся непосредственно потомками текущего узла с идентификатором test.

Аналог без использования фреймворка

function child(id, tag) {
  var node = document.getElementById(id),
  children = node.childNodes,
  i, length = children.length, array = [];
  tag = tag.toUpperCase();
  for(i = 0; i < length; i++) {
    if(children[i].tagName == tag) {
      array.push(children[i]);
    }
  }
  return array;
}

var childArray = child('test', 'li');