JSFiddle - React, Tailwind, and code Playground
HTML
<table>
<tr class="row-1 odd parent">
<th class="column-1">ст. 3 - 5</th>
<th class="column-2">Профиль</th>
<th class="column-3">Предложение</th>
</tr>
<tr class="row-2 even">
<td class="column-1">Марка стали. профиль</td>
<td class="column-2">Размер. мм</td>
<td class="column-3">Цена. руб</td>
</tr>
<tr class="row-3 odd">
<td class="column-1">Круг металлический ст. 3 - 5</td>
<td class="column-2">28-110</td>
<td class="column-3">21500</td>
</tr>
<tr class="row-4 even">
<td class="column-1">Круг металлический ст. 3 - 5</td>
<td class="column-2">115-180</td>
<td class="column-3">20700</td>
</tr>
<tr class="row-5 odd">
<td class="column-1">Квадрат металлический ст. 3 - 5</td>
<td class="column-2">63-80</td>
<td class="column-3">21500</td>
</tr>
<tr class="row-6 even">
<td class="column-1">Квадрат металлический ст. 3 - 5</td>
<td class="column-2">100-220</td>
<td class="column-3">20700</td>
</tr>
<tr class="row-7 odd">
<td class="column-1">Полоса металлическая ст. 3 - 5</td>
<td class="column-2">10-50 х 40-200</td>
<td class="column-3">27000</td>
</tr>
<tr class="row-8 even parent">
<td class="column-1">ст. 10 - 20</td>
<td class="column-2">Профиль</td>
<td class="column-3">Предложение</td>
</tr>
<tr class="row-9 odd">
<td class="column-1">Марка стали. профиль</td>
<td class="column-2">Размер. мм</td>
<td class="column-3">Цена. руб</td>
</tr>
<tr class="row-10 even">
<td class="column-1">Круг металлический ст. 10 - 20</td>
<td class="column-2">28-110</td>
<td class="column-3">21500</td>
</tr>
<tr class="row-11 odd">
<td class="column-1">Круг металлический ст. 10 - 20</td>
<td class="column-2">115-180</td>
<td class="column-3">20700</td>
</tr>
<tr class="row-12 even">
<td class="column-1">Квадрат металлический ст. 10 - 20</td>
<td class="column-2">63-80</td>
<td...
CSS
.parent {
background-color:#ddd;
}
JavaScript
$(".parent").each(function() {
var classes = $(this).attr('class').split(' ');
var matches = $.grep(classes, function(item, index) {
return /row-/.test(item);
});
if(matches.length == 1) {
var parent = matches[0];
var selector = '.' + parent;
var childClass = 'child-' + parent;
$(selector).nextUntil('.parent').addClass(childClass);
}
});