Как создать подстроку "детали", к выборочным строкам уже нарисованной таблицы в Datatables?

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

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="https://cdn.datatables.net/2.0.0/css/dataTables.dataTables.css" />     <script src="https://code.jquery.com/jquery-3.7.1.js"></script>      
    <script src="https://cdn.datatables.net/2.0.0/js/dataTables.js"></script>   
    <title>Document</title>
</head>
<body>
    <table id="tbl">
        <thead>
            <tr>
                <th>№</th>
                <th>Фамилия</th>
                <th>Имя</th>
                <th>Отчество</th>
                <th>Пол</th>
                <th>Дата рождения</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>1</td>
                <td>Иванов</td>
                <td>Иван</td>
                <td>Михайлович</td>
                <td>М</td>
                <td>22.03.1981</td>
            </tr>
            <tr>
                <td>2</td>
                <td>Васильев</td>
                <td>Пётр</td>
                <td>Яковлевич</td>
                <td>М</td>
                <td>01.02.1934</td>
            </tr>
            <tr class="details" id="row-1">
                <td colspan="6">
                    Ветеран труда!
                </td>
            </tr> 
            <tr>
                <td>3</td>
                <td>Петров</td>
                <td>Владимир</td>
                <td>Васильевич</td>
                <td>М</td>
                <td>04.03.1988</td>
            </tr>
        </tbody>
    </table>
    <script>        
  
        const table = new DataTable('#tbl', {                       
            order: [[0, 'asc']],
            processing: true,                    
            paging: true,
            searching: true
            
        });
        
        
        // Array to track the ids of the details displayed rows
        const detailRows = [];
        
        table.on('click', 'tbody td.dt-control', function () {
            let tr = event.target.closest('tr');
            let row = table.row(tr);
            let idx = detailRows.indexOf(tr.id);            
            if (row.child.isShown()) {
                tr.classList.remove('details');
                row.child.hide();
        
                // Remove from the 'open' array
                detailRows.splice(idx, 1);
            }
            else {
                tr.classList.add('details');
                row.child(format(row.data())).show();
        
                // Add to the 'open' array
                if (idx === -1) {
                    detailRows.push(tr.id);
                }
            }
        });
    </script>
</body>
</html>


Ответы (0 шт):