Если ваш id
находится на элементе table
или даже на элементе tr
, а формат неправильный (я не знаю, так как вы не опубликовали HTML), браузер переместитнедопустимый материал за пределами таблицы (или ближайшего действительного местоположения).Вы можете видеть, что при запуске нет никаких данных в tr
, и это делает ваш код попыткой отформатировать пустую строку, а затем сохранить пустую строку обратно.
console.log(document.getElementById('unchangedValues').innerHTML)
<table id="unchangedValues">
<tr>
[TD]Hi[/TD]
[TD]Hi[/TD]
[TD]Hi[/TD]
[TD]Hi[/TD]
</tr>
</table>
Как видно по выводу, [TD]
и [/TD]
все пропали из таблицы, однако, если вы проверяете вывод,значения будут перемещаться браузером автоматически над или под таблицей автоматически.
Чтобы устранить проблему, вам необходимо иметь элементы в памяти.Затем вы можете изменить элементы и затем сохранить их в таблице.
let str = `[TD]Hi[/TD]
[TD]Hi[/TD]
[TD]Hi[/TD]
[TD]Hi[/TD]`
document.querySelector('#unchangedValues tr').innerHTML = str.replace(/\[(\/?TD)\]/g, '<$1>')
<table id="unchangedValues">
<tr>
</tr>
</table>