JS метод Collection.namedItem()


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

namedItem() є методом об'єкта HTMLCollection, який дозволяє отримати елемент колекції за його name або id атрибутом. Цей метод є особливо корисним при роботі з формами, оскільки він забезпечує зручний спосіб отримання доступу до елементів форми, таких як поля введення, випадаючі списки та кнопки, без необхідності використовувати їхні індекси або ітерувати по всій колекції.

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

htmlCollection.namedItem(name)

Тут htmlCollection є об'єктом HTMLCollection, а name - рядок, який містить name або id атрибут елемента, який потрібно отримати.

Наприклад, щоб отримати поле введення імені користувача з форми, можна виконати наступний код:

const form = document.getElementById('registration-form');
const usernameInput = form.elements.namedItem('username');

У цьому прикладі ми спочатку отримуємо форму за її id, а потім використовуємо namedItem('username') для отримання поля введення імені користувача за його name атрибутом.

Метод namedItem() також можна використовувати з іншими колекціями елементів DOM, такими як document.images або document.links. Наприклад, щоб отримати посилання на головну сторінку сайту, можна виконати:

const homeLink = document.links.namedItem('home');

Якщо елемент з вказаним name або id не знайдено, метод namedItem() поверне null. Тому важливо завжди перевіряти результат на null перед використанням отриманого елемента.

У складніших випадках, коли потрібно отримати кілька елементів з однаковими name або id атрибутами, метод namedItem() не буде корисним, оскільки він повертає лише перший знайдений елемент. У такій ситуації варто використовувати інші методи, такі як document.querySelectorAll() або document.getElementsByName().

Загалом, метод namedItem() є зручним інструментом для роботи з формами та іншими колекціями елементів DOM, оскільки він дозволяє отримувати доступ до елементів за їхніми name або id атрибутами, що робить код більш читабельним і легшим для підтримки. Однак важливо розуміти його обмеження та використовувати інші методи, коли це необхідно.

автор: Bond

Порада

Пам'ятайте, що метод namedItem() повертає null, якщо елемент з вказаним name або id не знайдено. Тому завжди перевіряйте результат на null перед використанням отриманого елемента. Наприклад: const usernameInput = form.elements.namedItem('username'); if (usernameInput) { /* робота з usernameInput */ }.

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

Метод namedItem() можна використовувати не лише з формами, але й з іншими колекціями елементів DOM, такими як document.images або document.links. Це дозволяє легко отримувати доступ до зображень, посилань та інших елементів за їхніми name або id атрибутами.

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

Якщо у вашому коді є кілька елементів з однаковими name або id атрибутами, метод namedItem() поверне лише перший знайдений елемент. У такому випадку, для отримання всіх відповідних елементів, використовуйте інші методи, такі як document.querySelectorAll() або document.getElementsByName().

автор: Bond

Синтаксис

HTMLCollection.namedItem(key)

Повернення

element

Повертає елемент DOM або null. Якщо в колекції HTMLCollection є елемент, який відповідає вказаному name або id, метод поверне перший знайдений елемент. Якщо жоден елемент не відповідає вказаному name або id, метод поверне null.

автор: Bond

Переглядачі

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

Приклади

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

У цьому прикладі ми використовуємо метод namedItem() для отримання елемента форми за його name або id.

HTML

<form id="contact-form" name="contact-form">
    <input name="name" value="Лесь">
</form>

JS

// Отримуємо форму за її іменем
const form = document.forms.namedItem('contact-form');

// Отримуємо поле введення імені за його name
const nameInput = form.elements.namedItem('name');

console.log(nameInput.value); // 'Лесь'
автор: Bond

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

<form id="registration-form">
  <label>
    Ім'я:
    <input type="text" name="name">
  </label>
  <label>
    Роль:
    <select name="role"></select>
  </label>
  <button type="submit">Зареєструватися</button>
</form>
```

<script>
// Отримуємо форму за її id
const form = document.forms.namedItem('registration-form');

// Отримуємо випадаючий список ролей за його name
const roleSelect = form.elements.namedItem('role');

// Масив доступних ролей
const roles = ['Користувач', 'Модератор', 'Адміністратор'];

// Додаємо опції до випадаючого списку
roles.forEach(role => {
  const option = document.createElement('option');
  option.value = role.toLowerCase();
  option.textContent = role;
  roleSelect.add(option);
});
</script>
автор: Bond

У цьому прикладі ми створюємо форму для додавання нового продукту. Користувач може ввести назву продукту, ціну та вибрати категорію з випадаючого списку. Ми використовуємо метод namedItem() для отримання доступу до елементів форми за їхніми name атрибутами.

Спочатку ми отримуємо форму та випадаючий список категорій за допомогою document.getElementById() та form.elements.namedItem('product-category') відповідно. Потім ми динамічно додаємо початкові категорії до випадаючого списку, використовуючи масив categories.

Також ми додаємо кнопку "Додати категорію", яка дозволяє користувачеві додавати нові категорії до випадаючого списку. При натисканні на кнопку ми показуємо діалогове вікно для введення назви нової категорії, створюємо новий елемент option і додаємо його до випадаючого списку за допомогою методу add().

Коли користувач заповнює форму і натискає кнопку "Додати продукт", ми перехоплюємо подію submit і запобігаємо стандартній поведінці форми за допомогою e.preventDefault(). Потім ми отримуємо значення полів форми за їхніми name атрибутами, використовуючи form.elements.namedItem('product-name'), form.elements.namedItem('product-price') та categorySelect.options[categorySelect.selectedIndex].textContent. Нарешті, ми виводимо інформацію про новий продукт у блок product-info.

автор: Bond

Коментарі

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

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

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

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

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

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

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

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

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

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

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

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