查找具有特定类属性的最近的表行元素,该元素属性与当前元素相反

时间:2012-10-23 17:01:25

标签: jquery class html-table reverse closest

我有一个JqGrid,并希望在返回包含网格的视图/页面时自动切换最后编辑的行/组的显示。

我的流程是

  1. 完成添加/编辑后,将最后编辑的OrderId写入会话变量
  2. 将此传递给隐藏表单元素所在的视图
  3. 我现在要做的是使用这个“id”找到最近的(反向)分组表行,然后我可以使用它来切换显示。

    由于id“”属性与OrderId匹配,因此很容易识别OrderId。

    分组元素虽然是0索引,只根据它在网格中的位置编号,即它与OrderId或OrderLinkId无关。

    24/10/2012 修改以下示例以证明组头元素在单个Order元素之前关闭,即。兄弟姐妹不是父母/孩子

    <tr id="clientOrderGridghead_0_6" class="ui-widget-content jqgroup ui-row-ltr clientOrderGridghead_0" role="row">
    .....Group Header 6 Content.....
    </tr>
    <tr id="403" class="ui-widget-content jqgrow ui-row-ltr" style="" tabindex="-1" role="row">
    </tr>
    <tr id="414" class="ui-widget-content jqgrow ui-row-ltr" style="" tabindex="-1" role="row">
    </tr>
    <tr id="418" class="ui-widget-content jqgrow ui-row-ltr" style="" tabindex="-1" role="row">
    </tr>
    <tr id="clientOrderGridghead_0_7" class="ui-widget-content jqgroup ui-row-ltr clientOrderGridghead_0" role="row">
    ......Group Header 7 Content......
    </tr>
    

    上面的例子显示了作为组头的top元素,后面的3个元素是相关Orders的记录行。

    header元素始终具有类

    class="ui-widget-content jqgroup ui-row-ltr clientOrderGridghead_0"
    

    我已经能够通过硬编码组元素的id来成功进行切换,如下所示

    jQuery('#clientOrderGrid').jqGrid('groupingToggle','clientOrderGridghead_0_6');
    

    但我现在正努力获得插入groupingToggle调用所需的id并使其动态化。

    我尝试了以下

    var groupId = $('#' + lastOrderId).closest('tr').find('.ui-widget-content jqgroup ui-row-ltr clientOrderGridghead_0').attr('id');
    

    在这里看到这个例子 Using a class name in jQuery's .closest()

    但是这会返回undefined。

    任何指针都非常感激。

    24/10/2012 另一次尝试

    var groupId = $('#' + lastOrderId).closest('tbody').find('.ui-widget-content jqgroup ui-row-ltr clientOrderGridghead_0').attr('id');
    

    但仍然没有快乐

1 个答案:

答案 0 :(得分:0)

我认为你应该选择

var groupId = $('#' + lastOrderId).parent().find('.clientOrderGridghead_0').attr('id');

编辑:在find中删除了不必要的类。

编辑2:我首先无法理解你的问题。

请试试这个:

var groupId = $('#' + lastOrderId).prev('.clientOrderGridghead_0').attr('id');

我非常希望这次对你有用。