Вход/Регистрация
JavaScript. Подробное руководство, 6-е издание
вернуться

Флэнаган Дэвид

Шрифт:

* Если в аргументе п передать положительное число, функция вернет следующий

* n-й братский элемент.

* Если в аргументе п передать отрицательное число, функция вернет предыдущий

* n-й братский элемент.

* Если в аргументе п передать ноль, функция вернет сам элемент е.

*/

function sibling(e.n) {

while(e && n !== 0) { // Если e не определен, просто вернуть его

if (n > 0) { // Отыскать следующий братский элемент

if (е.nextElementSibling) е = е.nextElementSibling;

else {

for(e=e.nextSibling; e && e.nodeType !== 1; e=e.nextSibling)

/* пустой цикл */ ;

}

n--;

}

else { // Отыскать предыдущий братский элемент

if (e.previousElementSibing) e = e.previousElementSibling;

else {

for(e=e.previousSibling;e&&e.nodeType!==1;e=e.previousSibling)

/* пустой цикл */ ;

}

n++;

}

}

return e;

}

/**

* Возвращает n-й дочерний элемент элемента е или null, если нет такого

* дочернего элемента.

* Если в аргументе n передать отрицательное число, поиск дочернего элемента

* будет выполняться с конца. 0 соответствует первому дочернему элементу,

* но -1 - последнему, -2 - второму с конца и т. д.

*/

function child(e, n) {

if (e.children) { // Если массив children существует

if (n < 0) n += e.children.length; // Преобразовать отрицательное

// число в индекс массива

if (п < 0) return null; // Если получилось отрицательное число,

// значит, нет такого дочернего элемента

return е.children[n3; // Вернуть заданный дочерний элемент

}

// Если элемент е не имеет массива children, начать поиск с первого

// дочернего элемента, двигаясь вперед, или начать поиск с последнего

// дочернего элемента, двигаясь назад.

if (n >= 0) { // n - положительное: двигаться вперед, начиная с первого

// Найти первый дочерний элемент элемента е

if (е.firstElementChild) е = е.firstElementChild;

else {

for(e = е.firstChild; е && e.nodeType !== 1; е = е.nextSibling)

/* пустой цикл */;

}

return sibling(e, n); // Вернуть n-го брата первого дочернего элемента

}

  • Читать дальше
  • 1
  • ...
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: