Проблема в том, что у вас есть событие click
во всей строке, на tr
, а не на каждом тд.
Я бы сделал следующее:
const onClick = (e) => {
const currentId = e.id;
e.innerHTML = currentId.replace('tg-', '');
}
.td-center {
text-align: center;
}
<table>
<tr>
<td class="tg-kpoh td-center">J</td>
<td id="tg-13" class="td-center" onclick="onClick(this)"><button>?</button></td>
<td id="tg-10" class="td-center" onclick="onClick(this)"><button>?</button></td>
<td id="tg-45" class="td-center" onclick="onClick(this)"><button>?</button></td>
<td id="tg-47" class="td-center" onclick="onClick(this)"><button>?</button></td>
<td id="tg-35" class="td-center" onclick="onClick(this)"><button>?</button></td>
</tr>
</table>
Я сделал дополнительные улучшения, такие как:
- Создан класс
td-center
вместо встроенного стиля. - Рефакторинг события
onClick
, что у вас было.
Надеюсь, это поможет!