jQuery向上遍历并找到

时间:2016-11-11 13:45:40

标签: javascript jquery html jquery-ui

我有一个表,它使用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>

1 个答案:

答案 0 :(得分:6)

你可以这样做: $(ui.item[0]).closest('tr').prevAll('.section-row:first').data('id');

它将转到最近的tr,在tr之前搜索所有内容,然后在第一个.section-row类中停止。