jQuery向上遍历并找到

Mez*_*ezz 4 html javascript jquery jquery-ui

我有一个表使用jQuery可排序来拖放和排序表中的元素.

将元素放入"可排序行"时,我想从前一个"section-row"中读取data-id.

我已经设法实现这一点,当行直接放在"section-row"下面的行中,或者下面的2个级别.

第一级:

($(ui.item[0]).closest('tr').prev('.stop-row').data('id');
Run Code Online (Sandbox Code Playgroud)

二级下调:

$(ui.item[0].previousElementSibling).closest('tr').prev('tr.stop-row').data('id');
Run Code Online (Sandbox Code Playgroud)

问题是"section"可以添加任意数量的行,所以我需要某种循环来检查前一个元素是否是"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>
Run Code Online (Sandbox Code Playgroud)

jun*_*kie 6

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

它将前往最近的tr,搜索所有前面的,tr并在第一个与类停止.section-row.