/ Автоматическое содержание к статье на основе заголовков H1-H6

Автоматическое содержание к статье на основе заголовков H1-H6

Дмитрий М.
246

Рассмотрим пример как сделать автоматическое оглавление статьи, на основании заголовков H1-H6 внутри статьи.

Для этих целей будем использовать JavaScript и немного CSS для стилизации оглавления.

Для начала нужно разметить страницу статьи.

1. Обернем статью в тег с классом article__container

2. В итоге весь контент статьи с заголовками должен находится внутри этого класса

3. В нужном месте вывода оглавления вставьте ul-тег с классом article__summary-list. В нем будет выводиться наше оглавление

В месте где нужно выводить оглавление нужно вставить html теги 

Далее нужно добавить JS-код для вызова на странице

let summaryContainer = document.querySelector('.article__summary-list');

if (summaryContainer) {
    document.querySelectorAll('.article__container h1, .article__container h2, .article__container h3, .article__container h4, .article__container h5, .article__container h6').forEach((item, key) => {
        item.setAttribute('id', `article-${key+1}`);
        let link = `
  • ${key+1}.${item.inner}
  • `; }) }

    Раз

    Два

    Три

    Статья была полезна? Поблагодарите автора.

    Оглавление
      Самые читаемые
      #1С Битрикс, #Bitrix CMS, #.htaccess, #настройка редиректов
      4 авг 2019
      #bitrix:news, #сортировка, #фильтрация, #bitrix:catalog, #catalog.section, #news.list
      16 дек 2020
      #Хлебные крошки, #1С Битрикс, #Bitrix CMS, #bitrix:breadcrumbs, #component_epilog, #кэширование
      1 окт 2018
      #bitrix, #свойства элементов, #обработчик событий, #OnBeforeIBlockElementUpdate, #OnIBlockElementSetPropertyValues
      21 июл 2020
      #Bitrix CMS, #breadcrumb, #bitrix:breadcrumbs, #хлебные крошки, #настройка
      13 фев 2019
      #ресайз изображений, #1С Битрикс, #Bitrix CMS
      3 мар 2019
      #bitrix, #bitrix:catalog.section, #скидки, #товары со скидкой, #страница скидок, #страница со скидками
      4 окт 2018
      #bitrix, #robots.txt, #sitemap.xml, #поддомены, #мультисайтовость
      16 окт 2018
      #bitrix, #пользовательские свойства, #тип свойств, #привязка к элементам
      27 ноя 2019