Вам не нужно использовать «getComputedStyle» (вот почему ваш код не работает). Используйте var bgcH = h.style.backgroundColor;
Если вы хотите использовать getComputedStyle()
, вам нужно будет использовать getPropertyValue("background-color")
вместо .style.backgroundColor
(есть пример в последнем блоке кода).
Примечание , если вы используете только bgcH и bgcV для изменения цвета (вы не хотите сохранять его для дальнейшего использования), вам нужен только 1 из них. Вы можете сделать что-то вроде:
var tempColor = h.style.backgroundColor;
h.style.backgroundColor = v.style.backgroundColor;
v.style.backgroundColor = tempColor;
Если в вашей таблице будет более 2 строк, вам следует рассмотреть возможность использования css nth-child (odd) / nth-child (even) и используя javascript, чтобы перевернуть эти цвета.
<style>
tr:nth-child(odd) {
background: red;
}
tr:nth-child(even) {
background: blue;
}
</style>
<table style='border: 1px solid black'>
<tr id='h' >
<td>FN</td>
<td>LN</td>
<td>Age</td>
</tr>
<tr id='v' >
<td>Hamdi</td>
<td>TRIMECH</td>
<td>23</td>
</tr>
</table>
<button type="button" onclick="chBackcolor();">Swap color</button>
<script> function chBackcolor(){
var odd = document.querySelector("tr:nth-child(odd)");
var even = document.querySelector("tr:nth-child(even)");
var colorTemp = window.getComputedStyle(odd).getPropertyValue('background-color');
odd.style.background = window.getComputedStyle(even).getPropertyValue('background-color');;
even.style.background = colorTemp;
} </script>