Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Несколько элементов с одинаковым id (https://javascript.ru/forum/events/85636-neskolko-ehlementov-s-odinakovym-id.html)

Arigato 27.11.2023 11:47

Несколько элементов с одинаковым id
 
Вложений: 1
Допустимо ли создавать несколько html-элементов с одинаковым id на странице? Вроде как всегда считалось, что id должен быть уникален.

Решил сделать расширение для Chrome, которое обрабатывало бы комментарии на YouTube. Собственно, сами комментарии где-то тут:

https://javascript.ru/forum/attachme...d=170107476 5

id повторяются многократно. И как к таким элементам обращаться из JS? Можно ли найти элемент по не уникальному id, если локализовать область поиска только среди дочерних элементов, среди которых этот id будет встречаться только один раз?

Ну то есть для каждого элемента ytd-comment-thread-renderer найти дочерний с id="comment". Как такое прописать?

ruslan_mart 27.11.2023 13:48

const commentNodes = document.querySelectorAll('ytd-comment-thread-renderer #comment');


Или просто

const commentNodes = document.querySelectorAll('#comment');

voraa 27.11.2023 13:49

Ну как то так, если найти в конкретном ytdCommentTreadRenderer
ytdCommentRenderer = ytdCommentTreadRenderer.querySelector('#comment');

Arigato 27.11.2023 13:57

А как с точки зрения спецификации рассматривается задание нескольких одинаковых id? Допустимо или это что-то вроде недокументированной возможности?

voraa 27.11.2023 14:28

Парсер HTML не выдает сообщений об ошибках. Ему все равно один элемент с таким id или несколько. Просто рекомендуется делать id уникальным, что бы можно было сослаться на конкретный элемент.
Если сделать несколько, то ссылка (getElementById или <label for="id">) будет на первый.


Часовой пояс GMT +3, время: 02:02.