Я пытаюсь добавить полужирный текст в строку заголовка таблицы с помощью метода .bold () в javascript. Таблица создается динамически с использованием этого кода:
var table = document.getElementById('changestable');
var titlerow = ["Type", "Change Date", "FCM", "Hull ID", "Name", "Length", "Manufacturer", "Manufacturer ID", "Year", "Value", "Owner", "Loss Payee", "Policy ID", "Start Date", "End Date"];
var newRow = table.insertRow(0);
for (k = 0; k < titlerow.length; k++){
var newCell = newRow.insertCell(k);
var newText = document.createTextNode(titlerow[k]);
newCell.appendChild(newText);
}
Я пытался:
.bold() // and this just adds <b></b>, not actually making the text bold
Я также пробовал:
titlerow[k].style.fontWeight = 'bold'
Заранее спасибо!



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы не можете применить style к строке - вместо этого вы должны применить его к элементу.
newCell.style.fontWeight = 'bold';
Но вместо того, чтобы пытаться возиться с этим в Javascript, почему бы вместо этого не применить стиль в CSS? Отделяйте функциональность Javascript от стиля страницы
var table = document.getElementById('changestable');
var titlerow = ["Type", "Change Date", "FCM", "Hull ID", "Name", "Length", "Manufacturer", "Manufacturer ID", "Year", "Value", "Owner", "Loss Payee", "Policy ID", "Start Date", "End Date"];
var newRow = table.insertRow(0);
for (k = 0; k < titlerow.length; k++){
var newCell = newRow.insertCell(k);
var newText = document.createTextNode(titlerow[k]);
newCell.appendChild(newText);
}#changestable tr:first-child {
font-weight: bold;
}<table id = "changestable"></table>Или, что еще лучше, если возможно, вставьте th, а не td, и вам вообще не понадобится стилизация, поскольку th автоматически выделяются жирным шрифтом:
var table = document.getElementById('changestable');
var titlerow = ["Type", "Change Date", "FCM", "Hull ID", "Name", "Length", "Manufacturer", "Manufacturer ID", "Year", "Value", "Owner", "Loss Payee", "Policy ID", "Start Date", "End Date"];
var newRow = table.insertRow(0);
titlerow.forEach(titleStr => {
newRow.appendChild(document.createElement('th'))
.textContent = titleStr;
});<table id = "changestable"></table>на самом деле вы поместили этот CSS в style.css или в функцию?
Конечно, в CSS - синтаксис CSS внутри JS недействителен. Нажмите "Выполнить фрагмент кода".
Вы можете использовать innerHTML и добавить тег <b>
for (k = 0; k < titlerow.length; k++){
var newCell = newRow.insertCell(k);
var newText = document.createTextNode();
newText.innerHTML = `<b> ${titlerow[k]} </b>`;
newCell.appendChild(newText);
}
Это недопустимо, текстовые узлы не могут иметь такой стиль. (нет свойства style)
большое спасибо! Стили CSS - не моя сильная сторона.