Помимо некоторых ошибок, связанных с недействительным HTML, как уже упоминалось другими, цвет вашего фона не изменится, потому что вы поместили <p>
в <span>
, что не имеет смысла, так как <p>
является абзацем, а <span>
- это стандартный встроенный контейнер для фразового содержимого. Это будет работать, хотя, если вы поместите <span>
внутри <p>
:
<p id="header2">
<span>...</span>
</p>
Но если вы хотите применить фон ко всей ячейке, я рекомендую вместо этого стилизовать элемент <td>
. Проверьте следующий пример:
document.getElementById('headerID1').style.backgroundColor = 'blue';
document.getElementById('header2').style.backgroundColor = 'lightblue';
document.getElementById('header3').style.backgroundColor = 'lightblue';
.myTable {
width: 100%;
text-align: left;
background-color: lemonchiffon;
border-collapse: collapse;
}
.myTable th {
background-color: goldenrod;
color: white;
}
.myTable td,
.myTable th {
padding: 10px;
border: 1px solid goldenrod;
}
<table class="myTable">
<tr>
<th>PROJECT</th>
<th>Service</th>
<th>PrDC</th>
<th>DDC</th>
<th>Last Checked Time(IST)</th>
</tr>
<tr>
<td>
<div>
<span id="headerID1">
<p>BG doesn't work</p>
</span>
</div>
</td>
<td>
<div>
<p id="header2">
<span>BG works because <span> is inside <p></span>
</p>
</div>
</td>
<td id="header3">
<div>
<p>BG for entire cell</p>
</div>
</td>
<td>
<div>
<p>Test4</p>
</div>
</td>
<td>
<div>
<p>Test5</p>
</div>
</td>
</tr>
</table>
UPD: Возможно, вы получаете SCRIPT5007: Unable to get property 'style' of undefined or null reference
, потому что ваш скрипт Json_Development_Test.js
начинает выполняться, когда остальной документ неоказано еще. Вы можете попробовать:
Поместить <script src ="Json_Development_Test.js">
в конец HTML
Поместить эту строку document.getElementById('headerID1').style.backgroundColor = 'blue';
внутри window.addEventListener('load', ...)
обратный вызов:
window.addEventListener('load', function() {
console.log('All assets are loaded');
document.getElementById('headerID1').style.backgroundColor = 'blue';
});