У вас включен AdBlock или иной блокировщик рекламы.

Пожалуйста, отключите его, доход от рекламы помогает развитию сайта и появлению новых статей.

Спасибо за понимание.

В другой раз
DevGang блог о програмировании
Авторизоваться

Получение дубликатов идентификаторов в HTML документе 

Мне нужен был способ найти все HTML элементы с дублирующимися идентификаторами. Это, казалось бы, простая задача, но, к сожалению, я не нашел там ничего подходящего.

Я нашел пару функций, которые возвращали дубликаты, но они не включали первое вхождение (я предполагаю, что они предполагают, что первое вхождение не является дубликатом, но все последующие вхождения есть).

Итак, вот функция ES6, которая делает эту работу.

function getAllDuplicateIds() {
  const elements = [...document.querySelectorAll('[id]')];
  const ids = elements.map(el => el.id);
  const dups = elements.filter(el => ids.filter(id => id === el.id).length > 1);
  return dups;
}

Эта функция будет возвращать массив элементов в документе, которые имеют повторяющиеся идентификаторы. Если дубликаты не найдены, возвращается пустой массив.

Если вам нужны все вхождения  после первого, вот аналогичная функция ES6 для этого тоже.

function getDuplicateIds() {
 const elements = [...document.querySelectorAll('[id]')];
 const ids = [];
 const dups = [];
 elements.map(el => ids.includes(el.id) ? dups.push(el) : ids.push(el.id));
 return dups;
}
#JavaScript
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоеденяйся в тусовку

Поделитесь своим опытом, расскажите о новом инструменте, библиотеке или фреймворке. Для этого не обязательно становится постоянным автором.

Попробовать