Мне нужно редактировать значения в таблице, где строки/ячейки генерируются динамически Bootgrid, поэтому у них нет html-идентификатора. В настоящее время я делаю это, перейдя в tr: nth-child, но это работает, только если значение, заданное для rowID, соответствует этой позиции в таблице.Найдите строку таблицы по идентификатору и отредактируйте ее ячейки?
Ex: Если я удаляю третий элемент из таблицы, элемент с rowID = 4 теперь является третьим дочерним элементом tr, а следующий код будет редактировать неправильные ячейки.
Мне нужно найти правильную строку для редактирования по ID, а не позицию в сетке. Вчера я опубликовал аналогичный вопрос, но я улучшил это, чтобы лучше уточнить, что я пытаюсь сделать.
// I get the rowID by clicking an Edit button on the table row, like this:
rowID = $(this).data("row-id");
// This is what I'm doing now to edit the table:
$('#or-table tr:nth-child(' + rowID + ') td:nth-child(3)').html($('#aff-selector').val());
$('#or-table tr:nth-child(' + rowID + ') td:nth-child(4)').html($('#editor-code').val());
$('#or-table tr:nth-child(' + rowID + ') td:nth-child(5)').html($('#editor-lat').val());
$('#or-table tr:nth-child(' + rowID + ') td:nth-child(6)').html($('#editor-long').val());
<!-- This is the table: -->
<table id="or-table" class="table table-condensed table-hover table-striped bootgrid-table">
<thead>
<tr>
<th data-column-id="id" data-identifier="true" data-type="numeric">ID</th>
<th data-column-id="aff" align="center">Affiliation</th>
<th data-column-id="code">Symbol Code</th>
<th data-column-id="lat">Latitude</th>
<th data-column-id="long">Longitude</th>
<th data-column-id="commands" data-formatter="commands" data-sortable="false">Commands</th>
</tr>
</thead>
<tbody>
<!-- These tr/td generated by Bootgrid: -->
<tr data-row-id="1">
<td class="select-cell" style="{{ctx.style}}">
<td class="text-left" style="">1</td>
<td class="text-left" style="">H</td>
<td class="text-left" style="">SHG-EVAI-------</td>
<td class="text-left" style="">35.39135902572556</td>
<td class="text-left" style="">-116.52048110961914</td>
<td class="text-left" style="">
</tr>
<tr data-row-id="2">
<td class="select-cell" style="{{ctx.style}}">
<td class="text-left" style="">2</td>
<td class="text-left" style="">H</td>
<td class="text-left" style="">SHG-EVAT-------</td>
<td class="text-left" style="">35.40241360341436</td>
<td class="text-left" style="">-116.52648925781249</td>
<td class="text-left" style="">
</tr>
</tbody>
</table>
как вы инициируя это? это щелчок на кнопке? вы нажимаете на строку? Я думаю, что это можно сделать намного проще, если вы предоставите более подробную информацию. –
Инициируется нажатием кнопки «Редактировать» в строке таблицы. –
, поэтому вы можете использовать '$ (this) .parent()', который даст вам родительскую кнопку нажатой кнопки (которая может/должна быть 'tr'). вы можете показать мне, где кнопка редактирования находится в html и как она выглядит? –