If you need to make a line selection, you can do it like this -
const table = document.querySelector('table'); table.addEventListener('change', table_changeHandler); function table_changeHandler(event) { let tr = table.querySelector('tr[data-active="true"]'); if (tr) { tr.dataset.active = false; } event.target.closest('tr').dataset.active = true; }
tr[data-active="true"] td { background: tomato; }
<table border="1"> <tr align="center" bgcolor="#E6E6E6"> <th>ID</th> <th>Icon</th> <th>Object Name</th> <th>Object Type</th> <th>Creation Date</th> </tr> <tr data-active="false"> <td><label><input type="radio" name="object_id" value="${obj.obj_id}" />first</label></td> <td>1</td> <td>2</td> <td>3</td> <td>4</td> </tr> <tr data-active="false"> <td><label><input type="radio" name="object_id" value="${obj.obj_id}" />second</label></td> <td>1</td> <td>2</td> <td>3</td> <td>4</td> </tr> <tr data-active="false"> <td><label><input type="radio" name="object_id" value="${obj.obj_id}" />third</label></td> <td>1</td> <td>2</td> <td>3</td> <td>4</td> </tr> <tr> <td colspan="7"> </td> </tr> </table>
If values are needed, then you can
const table = document.querySelector('table'); table.addEventListener( 'change', table_changeHandler ); function table_changeHandler(event){ let td = event.target.closest('tr').querySelectorAll('td'); parseTableRow( Array.from(td) ); } function parseTableRow(tdAll){ console.log(tdAll); // парсим данные }