NodeList.item() в JavaScript — вузол за його індексом


Загальний опис

Метод item() є методом об'єкту NodeList, який дозволяє отримати вузол DOM за його індексом у NodeList. Цей метод є корисним, коли потрібно отримати доступ до конкретного вузла в колекції, не проходячи по циклу через весь NodeList. Він часто використовується у поєднанні з іншими методами NodeList або при роботі з окремими вузлами DOM.

Синтаксис методу item() виглядає наступним чином:

nodeList.item(index)

Єдиний аргумент index є числовим індексом вузла, який потрібно отримати. Індекси в NodeList починаються з нуля, тому перший вузол має індекс 0, другий - 1 і так далі.

Метод item() повертає вузол DOM за зазначеним індексом або null, якщо індекс виходить за межі NodeList.

Розглянемо простий приклад використання item() для отримання першого і останнього вузла в NodeList:

// Отримуємо всі елементи <p> на сторінці
const paragraphs = document.querySelectorAll('p');

// Отримуємо перший елемент <p>
const firstParagraph = paragraphs.item(0);
console.log(firstParagraph.textContent); // Виведе текст першого елемента <p>

// Отримуємо останній елемент <p>
const lastParagraph = paragraphs.item(paragraphs.length - 1);
console.log(lastParagraph.textContent); // Виведе текст останнього елемента <p>

У цьому прикладі ми спочатку отримуємо NodeList всіх елементів <p> на сторінці за допомогою document.querySelectorAll('p'). Потім ми використовуємо метод item(0) для отримання першого елемента <p> і item(paragraphs.length - 1) для отримання останнього елемента <p>. Після цього ми можемо маніпулювати отриманими вузлами, наприклад, виводити їх текстовий вміст у консоль.

Метод item() також можна використовувати для перевірки наявності вузла в NodeList за індексом перед виконанням будь-яких операцій з ним. Наприклад:

const links = document.querySelectorAll('a');

if (links.item(0)) {
  // Виконати операції з першим посиланням
  const firstLink = links.item(0);
  // ...
}

У цьому прикладі ми спочатку перевіряємо, чи існує перше посилання в NodeList за допомогою links.item(0). Якщо це умова істинна (тобто вузол існує), ми можемо виконувати операції з першим посиланням.

Метод item() є корисним інструментом для отримання доступу до окремих вузлів у NodeList без необхідності проходити по циклу через весь NodeList. Він забезпечує зручний спосіб маніпулювання конкретними вузлами DOM і часто використовується у поєднанні з іншими методами NodeList або при роботі з окремими вузлами.

автор: Bond

Порада

Пам'ятайте, що індекси в NodeList починаються з нуля. Тому, якщо вам потрібно отримати останній вузол у NodeList, ви повинні використати індекс nodeList.length - 1. Наприклад: const lastLink = links.item(links.length - 1);.

автор: Bond
Порада

Перед виконанням будь-яких операцій з вузлом, отриманим за допомогою item(), переконайтеся, що вузол існує. Ви можете зробити це, перевіривши, чи не дорівнює результат item() значенню null. Наприклад:

const links = document.querySelectorAll('a');
if (links.item(0)) {
  const firstLink = links.item(0);
  // Виконати операції з першим посиланням
}
автор: Bond
Порада

Якщо вам потрібно виконати операції з декількома вузлами NodeList, можливо, буде зручніше використовувати цикл for або метод forEach() замість багаторазового виклику item(). Наприклад:

const paragraphs = document.querySelectorAll('p');
paragraphs.forEach((paragraph, index) => {
  // Виконати операції з кожним елементом <p>
  console.log(`Елемент <p> з індексом ${index}: ${paragraph.textContent}`);
});
автор: Bond

Синтаксис

NodeList.item(index)

Повернення

node

Повертає елемент за індексом у NodeList, отриманий від методу item().

автор: Bond

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
1 1 1 ≤12.1 12 5
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 4 1

Приклади

+ запропонувати свій приклад у пісочниці

У цьому прикладі ми використовуємо метод item() для перевірки наявності посилань на сторінці та виконуємо певні операції з першим та останнім посиланнями, якщо вони існують. Цей приклад демонструє, як item() може бути використаний для безпечного доступу до вузлів у NodeList.

HTML

<a href="#demo">перше посилання</a>
<a href="#demo2">друге посилання</a>

JS

// Отримуємо всі посилання на сторінці
const links = document.querySelectorAll('a');

// Перевіряємо, чи є хоча б одне посилання
if (links.length > 0) {
  // Отримуємо перше посилання
  const firstLink = links.item(0);
  if (firstLink) {
    console.log(`Перше посилання: ${firstLink.href}`);
    // Виконати додаткові операції з першим посиланням
  }

  // Отримуємо останнє посилання
  const lastLink = links.item(links.length - 1);
  if (lastLink) {
    console.log(`Останнє посилання: ${lastLink.href}`);
    // Виконати додаткові операції з останнім посиланням
  }
}
автор: Bond

У цьому прикладі ми використовуємо метод item() для отримання першого та останнього елементів <p> на сторінці та виводимо їх текстовий вміст у консоль. Цей приклад демонструє один з найпоширеніших випадків використання item() для доступу до конкретних вузлів у NodeList.

HTML

<p>Абзац для прикладу.</p>

JS

// Отримуємо всі елементи <p> на сторінці
const paragraphs = document.querySelectorAll('p');

// Отримуємо перший елемент <p>
const firstParagraph = paragraphs.item(0);
console.log(`Перший елемент <p>: ${firstParagraph.textContent}`);

// Отримуємо останній елемент <p>
const lastParagraph = paragraphs.item(paragraphs.length - 1);
console.log(`Останній елемент <p>: ${lastParagraph.textContent}`);
автор: Bond

Цей приклад демонструє, як можна використовувати метод item() для отримання доступу до конкретного вузла в NodeList за його індексом. Користувач може взаємодіяти зі сторінкою, вводячи індекс посилання та отримуючи його URL. Це дозволяє наочно продемонструвати роботу методу item() та його практичне застосування.

HTML

<header>
  <h2 class="title">NodeList: item() method</h2>
  <p class="description">Повертає вузол DOM за зазначеним індексом у NodeList.</p>
</header>
<main>
  <div class="result">
    <h3>Список посилань</h3>
    <ul id="link-list"></ul>
    <div>
      <label for="link-index">Індекс посилання:</label>
      <input type="number" id="link-index" min="0" value="0">
      <button id="get-link">Отримати посилання</button>
    </div>
    <p id="link-output"></p>
  </div>
</main>

CSS

body {
  font-size: 16px;
  line-height: 1.5;
  font-family: monospace;
}

header {
  background-color: #f1f1f1;
  margin-bottom: 25px;
  padding: 15px;
  -webkit-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
  -moz-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
  box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
}

header h2.title {
  padding-bottom: 15px;
  border-bottom: 1px solid #999;
}

header p.description {
  font-style: italic;
  color: #222;
}

.result {
  background-color: #f8f8f8;
  padding: 15px;
  -webkit-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
  -moz-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
  box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
}

JS

// Отримуємо список посилань
const linkList = document.querySelector('#link-list');
const linkIndex = document.querySelector('#link-index');
const getLinkButton = document.querySelector('#get-link');
const linkOutput = document.querySelector('#link-output');

// Функція для створення нового елемента списку посилань
function createLinkItem(linkText, linkHref) {
  const linkItem = document.createElement('li');
  const linkAnchor = document.createElement('a');
  linkAnchor.href = linkHref;
  linkAnchor.textContent = linkText;
  linkItem.appendChild(linkAnchor);
  return linkItem;
}

// Додаємо кілька посилань до списку
linkList.appendChild(createLinkItem('Google', 'https://www.google.com'));
linkList.appendChild(createLinkItem('Facebook', 'https://www.facebook.com'));
linkList.appendChild(createLinkItem('Twitter', 'https://www.twitter.com'));

// Функція для отримання посилання за індексом
function getLinkByIndex() {
  const links = document.querySelectorAll('#link-list a');
  const index = parseInt(linkIndex.value);
  const link = links.item(index);
  if (link) {
    linkOutput.textContent = `Посилання з індексом ${index}: ${link.href}`;
  } else {
    linkOutput.textContent = `Посилання з індексом ${index} не знайдено.`;
  }
}

// Додаємо обробник події натискання для кнопки "Отримати посилання"
getLinkButton.addEventListener('click', getLinkByIndex);
//# sourceURL=pen.js
автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле веде сходинками (розділ → тип → сторінка), а хибний ключ підкреслить хвилею.
[[!sandbox/S0oh1hBm]] Живий приклад окремим рядком — саме вікно результату. Той самий ключ зі знаком !: наберіть [[! і дійдіть сходинками до потрібної сторінки, список покаже її приклади.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Правка
Зворотний зв'язок
Вхід