我有一个表,它使用jQuery sortable来拖放和排序表中的元素。
将元素放入"可排序行" ,我想读取前一个" section-row"中的data-id。
我已设法实现此功能,以便将行放在" section-row"或下面2个级别正下方的行中。
第一级:
($(ui.item[0]).closest('tr').prev('.stop-row').data('id');
第二级:
$(ui.item[0].previousElementSibling).closest('tr').prev('tr.stop-row').data('id');
问题在于"部分"可以添加任意数量的行,所以我需要某种循环来检查前一个元素是否是" section-row"如果没有,请检查以下的内容。
我如何使用jQuery实现这一目标?
我的表:
<table class="table table-bordered table-responsive">
<thead>
<tr>
<td>Assignment</td>
</tr>
<tr>
<td>Type</td>
</tr>
<tr>
<td>Time</td>
</tr>
<tr>
<td>Level</td>
</tr>
</thead>
<tbody class="sortable">
<tr class="section-row" data-id="{{ id }}">
<td> Section-{{ id }}</td>
</tr>
<tr class="sortable_row">
<td>{{ assignment }}</td>
<td>{{ type }}</td>
<td>{{ time }}</td>
<td>{{ level }}</td>
</tr>
</tbody>
</table>
答案 0 :(得分:6)
你可以这样做:
$(ui.item[0]).closest('tr').prevAll('.section-row:first').data('id');
它将转到最近的tr
,在tr
之前搜索所有内容,然后在第一个.section-row
类中停止。