使用jquery查找最后一个子项

使用jquery查找最后一个子项,jquery,jquery-1.8,Jquery,Jquery 1.8,我有一张由行组成的桌子。每行都有id、数据父属性和存储在data()中的虚拟级别选项。顶级行既没有父属性,也没有级别属性。我需要找到节点的最后一个子节点,例如: <tr id="83" class=""></tr> <tr id="91" class="successor" data-parent="83"></tr> <tr id="93" class="successor" data-parent="91"></tr>

我有一张由行组成的桌子。每行都有id、数据父属性和存储在data()中的虚拟级别选项。顶级行既没有父属性,也没有级别属性。我需要找到节点的最后一个子节点,例如:

<tr id="83" class=""></tr>
<tr id="91" class="successor" data-parent="83"></tr>
<tr id="93" class="successor" data-parent="91"></tr>
<tr id="92" class="successor" data-parent="91"></tr>
<tr id="94" class="successor" data-parent="92"></tr>
<tr id="133" class="successor" data-parent="83"></tr>
<tr id="134" class="successor rowselected" data-parent="83"></tr>

这看起来像

我需要确定1.1.1.1行是否是1.1的最后一行。怎么做?
尝试使用nextAll或prevAll选择器,并按数据父级和级别对其进行筛选。。。但是没有运气。谢谢。

您的示例代码与您对
虚拟级别选项的描述相冲突
如果您确实有
虚拟级别选项
,那么这应该是可行的。 如本文所示:我已将TR更改为DIVs,因为它未正确格式化HTML,导致浏览器出现问题

HTML:

这将返回带有级别和元素的
deepestEl
对象。在本例中,它将返回
{element:div#94.succession,level:3}

您是否尝试过以下方法:

var lastTr = $('#TABLEID tr').last();
这应该可以找到当前表的最后一个
元素(用“TABLEID”标记)


有关
jQuery.last()
look

的更多信息,一整天的挣扎让我找到了这个解决方案: 查找与拖动的行位于同一级别的行的顶部节点,并检查该元素是否位于拖动的元素之前

function isLastChild(parent, target, dragged)
{
  var top_node  = target.prevUntil("tr[data-parent="+parent+"]").andSelf().prev().first();
  var child_nodes = top_node.nextUntil("#"+dragged.attr("id")).filter(function(){ return $(this).data("parent") == target.data("parent")});

 return (child_nodes.last().attr("id")==target.attr("id"));
}

所有行都在一个表中。嵌套是通过我写的附加属性实现的。啊,对不起,那么您需要找到链接到特定父项的最后一个项吗?i、 e.您需要找到行“91”的所有子元素,这样它将返回93和92。这个假设正确吗?不完全正确,ex的第1.1.1.1行id为94,1.1.1.1的父项是92,它的父项是91。因此,我想知道第1.1.1.1行是否是节点91列表中的最后一行。这是真的,但正如我所说的,这些行没有嵌套在html中,因此选择器$(“.succession”,“#id_row”)给出了空的结果集。
var lastTr = $('#TABLEID tr').last();
function isLastChild(parent, target, dragged)
{
  var top_node  = target.prevUntil("tr[data-parent="+parent+"]").andSelf().prev().first();
  var child_nodes = top_node.nextUntil("#"+dragged.attr("id")).filter(function(){ return $(this).data("parent") == target.data("parent")});

 return (child_nodes.last().attr("id")==target.attr("id"));
}