Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.11.2023, 11:47
Аспирант
Отправить личное сообщение для Arigato Посмотреть профиль Найти все сообщения от Arigato
 
Регистрация: 11.12.2011
Сообщений: 42

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

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

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

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

Ну то есть для каждого элемента ytd-comment-thread-renderer найти дочерний с id="comment". Как такое прописать?
Изображения:
Тип файла: jpg 1.jpg (36.6 Кб, 9 просмотров)
Ответить с цитированием
  #2 (permalink)  
Старый 27.11.2023, 13:48
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

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


Или просто

const commentNodes = document.querySelectorAll('#comment');
Ответить с цитированием
  #3 (permalink)  
Старый 27.11.2023, 13:49
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,750

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

Последний раз редактировалось voraa, 27.11.2023 в 13:52.
Ответить с цитированием
  #4 (permalink)  
Старый 27.11.2023, 13:57
Аспирант
Отправить личное сообщение для Arigato Посмотреть профиль Найти все сообщения от Arigato
 
Регистрация: 11.12.2011
Сообщений: 42

А как с точки зрения спецификации рассматривается задание нескольких одинаковых id? Допустимо или это что-то вроде недокументированной возможности?
Ответить с цитированием
  #5 (permalink)  
Старый 27.11.2023, 14:28
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,750

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить несколько элементов с одинаковым id? Poveritov Элементы интерфейса 1 18.04.2016 10:58
Несколько элементов + динамические + действия kapustnik Events/DOM/Window 1 26.07.2013 08:01
как узнать что несколько элементов не в фокусе? PiExeL Общие вопросы Javascript 7 26.04.2013 10:10
AJAX несколько элементов на странице... myocean AJAX и COMET 2 12.11.2012 12:27
Несколько созданных элементов располагаются в одной строке. Как этого избежать? Hold Events/DOM/Window 1 21.01.2011 23:52