如何使用jQuery/javascript影响/选择具有Treetable插件的所有子体

如何使用jQuery/javascript影响/选择具有Treetable插件的所有子体,javascript,jquery,select,treetable,descendant,Javascript,Jquery,Select,Treetable,Descendant,我的一段HTML代码如下所示: <tr data-tt-id="1"> <td>Parent</td> </tr> <tr data-tt-id="2" data-tt-parent-id="1"> <td>Child 1</td> </tr> <tr data-tt-id="4" data-tt-parent-id="2"> <td>Child 1's

我的一段HTML代码如下所示:

<tr data-tt-id="1">
    <td>Parent</td>
</tr>
<tr data-tt-id="2" data-tt-parent-id="1">
    <td>Child 1</td>
</tr>
<tr data-tt-id="4" data-tt-parent-id="2">
    <td>Child 1's child</td>
</tr>
<tr data-tt-id="3" data-tt-parent-id="1">
    <td>Child 2</td>
</tr>
<tr data-tt-id="5" data-tt-parent-id="3">
    <td>Child 2's child</td>
</tr>

但是我想要所有的孩子和孩子们的孩子,不管树有多深

如您所见,data tt id是子项的唯一id,data tt parent id是子项附加到的id

我在考虑通过每一个循环,但我不知道我将如何实现这一点。 如何为数据tt id设置为“1”的tr选择所有子体

可能有更惯用的方法来编写此代码,而无需在多个位置重新分配
curset=…
,但这是可行的

可能有更惯用的方法来编写此代码,而无需在多个位置重新分配
curset=…
,但这是可行的


@Karl AndréGagnon比这更复杂,他需要一个递归解决方案。好吧,他也想得到他孩子的孩子?我也想要所有的孩子和孩子的孩子,不管树有多深。use可以尝试使用class而不是id。那么对于所有的孩子,parentclass都是一样的。使用classname可以访问任何lebel。@Karl AndréGagnon它比这更复杂,他需要一个递归解决方案。好吧,他也想要他的孩子?我也想要所有的孩子和孩子的孩子,不管树有多深。使用可以尝试使用class而不是id。那么对于所有的孩子,parentclass将是相同的。使用classname你可以访问任何lebel。我拼错了data属性,我刚刚纠正了它。这行吗?我拼错了数据属性,我刚刚纠正了它。这样行吗?
$('tr[data-tt-parent-id="1"]');
function getDescendants(el, curset) {
    curset = curset || $(""); // default to empty set
    var id = el.data('tt-id');
    var children = $("tr[data-tt-parent-id="+id+"]");
    if (children.length) {
        curset = curset.add(children);
        children.each(function() {
            curset = curset.add(getDescendants($(this), curset));
        });
    }
    return curset;
}