Выделение стилем CSS в массиве JS-Script - динамическая таблица
Имеется таблица: Всё работает прекрасно. Но хотел бы применить стиль css в данных массива "data", к примеру - выделить название отделов ("Руководство" в примере) стилями. Как такое можно внедрить в данную конструкцию?
let data = [
"► Руководство;;;;",
"Директор;Пупкин Василий Васильевич;223-322;8 900-000-00-00;director@e-mail.ru",
"Зам. директора;Тигренко Лев Леопардович;322-223;8 900-000-00-01;zamdirectora@e-mail.ru"];
function clearTable(table) {
for (var i = table.rows.length - 1; i > 0; i--) {
table.deleteRow(i);
}
}
function buildCell(row, entry, searchQuery) {
var cell = row.insertCell(-1);
highlight = new RegExp(searchQuery, "i");
if (searchQuery) {
cell.innerHTML = entry.replace(highlight, "<mark style='background-color:#0078d7; color:#ffffff;'>" + "$&" + "</mark>");
} else {
cell.appendChild(document.createTextNode(entry));
}
}
function buildTable(tableID, data, searchQuery) {
var table = document.getElementById(tableID);
clearTable(table)
for (i = 0; i < data.length; i++) {
var row = table.insertRow(-1);
slots = data[i].split(";");
for (j = 0; j < 5; j++) {
buildCell(row, slots[j], searchQuery);
}
}
}
buildTable("dataTable", data, "")
var keyupStack = [];
var keyword = document.getElementById('keyword');
keyword.addEventListener('keyup', function() {
keyupStack.push(1);
setTimeout(function() {
keyupStack.pop();
if (keyupStack.length === 0) {
var buf = '.*?' + this.value.replace(/(.)/g, "$1");
var reg = new RegExp(buf, 'i');
var filteredLists = data.filter(function(d) {
return reg.test(d);
});
buildTable("dataTable", filteredLists, this.value);
}
}.bind(this), 300);
});
tr:nth-child(2n+1) {
background: #f9f9f9; /* Цвет фона */
}
tr:nth-child(1) {
background: #cccccc; /* Цвет фона */
}
td{padding-left: 4px; padding-right: 4px;
border: solid;
border-color: #cccccc;
border-width: 1px;}
th {border: solid;
border-color: #b1b1b1;
border-width: 1px;}
#foundation{padding: 4px 4px 4px 4px;
color:#121c4b;
width:fit-content;
margin-left: auto;
margin-right: auto;
margin-bottom: 20pt;
line-height: 13px;
top:14pt;
text-align: left;
font-family: 'PT Sans', 'Roboto', 'Helvetica Nue', sans-serif;
font-size: 8pt;
position:relative;}
<div id="foundation">
<div style="position:fixed; text-align: center; min-width:228pt; max-width:600pt; width: 22vw; left:50%; right:50%; transform: translate(-50%, -50%); margin-top: -12px; margin-bottom: 24px; background-color:rgba(255,255,255,0.80); padding-top: 8pt;">
<span style="font-size: 10pt; font-weight: bold;">Поиск:</span> <input type="text" id="keyword" style="height: 12pt">
<ul id="list">
</ul>
</div>
<table id="dataTable" border="0" cellspacing="0" cellpadding="0" style="margin-left: auto; margin-right: auto; margin-top: 12pt; margin-bottom: 16px; border-collapse: collapse;">
<tr>
<th style="padding-left: 6px; padding-right: 6px;">Должность</th>
<th style="padding-left: 6px; padding-right: 6px;">ФИО</th>
<th style="padding-left: 6px; padding-right: 6px;">телефон отдела</th>
<th style="padding-left: 6px; padding-right: 6px;">телефон сотрудника</th>
<th style="padding-left: 6px; padding-right: 6px;">e-mail</th>
</tr>
</table>
</div>
</div>
Источник: Stack Overflow на русском