«parent» — получение родительского узла

Octane, 24.07.2008

Функция parent возвращает копию объекта _$, содержащую родительский узел текущего узла.

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

var node = $('test').parent();

В переменную node будет помещен объект с ссылкой на родительский узел текущего узла с идентификатором test. Чтобы получить сам узел, необходимо обратиться к атрибуту node возвращаемого объекта или воспользоваться функцией el.

var node = $('test').parent().node;
//или
var node = $('test').parent().el();

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

function parent(id) {
  return document.getElementById(id).parentNode;
}

var node = parent('test');

Категории: js-core, Работа с DOM | Комментариев нет

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

Octane, 24.07.2008

Функция 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');

Категории: js-core, Работа с DOM | Комментарии (4)

480×60
480×60