2016-04-08 154 views
2

我试图从另一个表中映射一行的tabledata,但我不知道如何到达那里。jQuery dom遍历嵌套表

我试过的东西:

$('.order_info .active').closest('tr').prev('tr').children('td').map(function(){ 
     return $(this).text(); 
    }).get(); 

$(this).find('.order_info .active').closest('tr').prev('tr').children('td').map(function(){ 
      return $(this).text(); 
    }).get(); 

,但没有运气。

这就是DOM的外观和从哪里去我需要去的地方。

enter image description here

+2

您可以添加HTML结构? –

+0

尝试父母并不是最接近 –

+0

@MikeB:不,它不会。 –

回答

2

您可以找到包含表行是通过.parent().closest("tr")(需要.parent,否则它会与您所在的行)的行。然后你通过.prev()得到前一个。

如果你的出发点不是实际的tr而是里面的吧,那么.closest("tr").parent().closest("tr").prev()。举例来说,如果你想处理一个点击该行的单元格:

$(this).closest("tr").parent().closest("tr").prev(); 

如果前一行并不总是你想要的,你可以通过.prevAll(".even").first()扫描.event

链接:

+1

'.closest('tr')。parent()。closest('tr).prev()'工作!我之前没有真正使用过'parent()',因此不确定如何做到这一点。 – Bart