我有一个由行组成的表。每行都有id,data-parent属性和存储在data()中的虚拟级别选项。顶层行没有,父级或级别属性。我需要找到节点的最后一个孩子,例如ex:
<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选择器,并按数据父级和级别对其进行过滤...但是没有运气。谢谢。
整日苦苦挣扎的想法使我想到了这个解决方案:在与拖动行相同的级别上找到该行的顶部节点,并检查该元素在拖动元素之前是否最后一个。
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"));
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句