Как задать элементам ID с условием первого не повторяющегося далее символа?
Имеются несколько заголовков, у которых первые символы - числа. Числа могут повторяться несколько раз в качестве первых символов в каждом новом заголовке.
Как сделать, чтобы атрибут id задавался только тем заголовкам, у которых число 1, 2, 3 и т.д. встречается впервые?
Например, чтобы из:
<h2>1 сезон, 1 серия</h2>
<h2>1 сезон, 2 серия</h2>
<h2>2 сезон, 1 серия</h2>
<h2>2 сезон, 2 серия</h2>
Получалось:
<h2 id="sezon-1">1 сезон, 1 серия</h2>
<h2>1 сезон, 2 серия</h2>
<h2 id="sezon-2">2 сезон, 1 серия</h2>
<h2>2 сезон, 2 серия</h2>
Ответы (1 шт):
Автор решения: UModeL
→ Ссылка
[...document.querySelectorAll('h2')].filter(el => /\D1 серия/gim.test(el.textContent)).forEach(el => el.setAttribute('id', el.textContent.replace(/^(\d+).*/m, 'sezon-$1')));
console.log([...document.querySelectorAll('h2')]);
<h2>1 сезон, 1 серия</h2>
<h2>1 сезон, 2 серия</h2>
<h2>2 сезон, 1 серия</h2>
<h2>2 сезон, 2 серия</h2>