За последние 24 часа нас посетил 36781 программист и 7753 робота. Сейчас ищут 1722 программиста ...

Как раздать разные классы нескольким <h2> в тексте

Тема в разделе "PHP для новичков", создана пользователем Mick_20, 9 дек 2023.

  1. Mick_20

    Mick_20 Активный пользователь

    С нами с:
    10 дек 2012
    Сообщения:
    19
    Симпатии:
    1
    Адрес:
    Россия, Новосибирск
    Здравствуйте,

    Подскажите как можно в исходном коде статей расставить классы для заголовков H2?
    Статей много - вручную не вариант.

    По сути надо в цикле пройтись по всем материалам и при встрече заголовка, в зависимости от его порядка в тексте, дать ему класс.
    Например классы header1, header2, header13

    Сказать легко - сделать не могу
     
  2. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    656
    Последовательно читаете, обрабатываете и при необходимости записываете обратно каждую запись (поле с контентом) коллекции. Если коллекций несколько, обрабатываете их в цикле или линейно (отдельными вызовами ф-ций/методов).
     
  3. Survivor

    Survivor Новичок

    С нами с:
    8 фев 2023
    Сообщения:
    93
    Симпатии:
    19
    HTML:
    1. <!DOCTYPE html>
    2.     <title>H2</title>
    3.     <style>
    4.         .header1 { color: red; }
    5.         .header2 { color: green; }
    6.         .header3 { color: blue; }
    7.     </style>
    8. </head>
    9.  
    10. <div id="content"></div>
    11.  
    12.     function generateHeaders()
    13.     {
    14.         const contentDiv = document.getElementById('content');
    15.         for (let i = 0; i < 20; i++)
    16.        {
    17.            const header = document.createElement('h2');
    18.            header.textContent = 'Заголовок ' + (i + 1);
    19.            header.classList.add('header' + (i + 1));
    20.            contentDiv.appendChild(header);
    21.        }
    22.    }
    23.  
    24.    document.addEventListener("DOMContentLoaded", generateHeaders);
    25.  
    26. </body>
    27. </html>
    28.  
     
  4. Mick_20

    Mick_20 Активный пользователь

    С нами с:
    10 дек 2012
    Сообщения:
    19
    Симпатии:
    1
    Адрес:
    Россия, Новосибирск
    Я наверное завел вас в заблуждение.
    Мне нужно взять статью из базы, обработать ее (расставить классы) и вернуть обратно в базу данных.
    Т е на php сделать.
     
  5. Дюран

    Дюран Активный пользователь

    С нами с:
    9 мар 2018
    Сообщения:
    291
    Симпатии:
    21
    PHP:
    1. $text = '
    2. <h2>11 </h2>
    3. <h2>22 </h2>
    4. ';
    5. $res = preg_replace_callback('/<h2/', function(){
    6.     static $x = 0;
    7.     $x++;
    8.     return '<h2 class="header' . $x . '"';
    9.  
    10. }, $text);
    11. print $res;
     
    Mick_20 нравится это.
  6. Mick_20

    Mick_20 Активный пользователь

    С нами с:
    10 дек 2012
    Сообщения:
    19
    Симпатии:
    1
    Адрес:
    Россия, Новосибирск
    Спасибо вам огромное!
    Это прям то, что мне нужно.