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
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

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

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

Попробовать

В этом месте могла бы быть ваша реклама

Разместить рекламу