gpt4 book ai didi

javascript - 如何使用 jQuery/javascript 使用 Treetable 插件影响/选择所有后代

转载 作者:行者123 更新时间:2023-11-29 18:22:02 24 4
gpt4 key购买 nike

我的一段 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="1"的父级:

$('tr[data-tt-parent-id="1"]');

但我也想要所有的 child 和 child 的 child ,无论这棵树有多深。

如您所见,data-tt-id 是 child 的唯一 ID,而 data-tt-parent-id 是附加到 child 的 ID。

我正在考虑循环遍历其中的每一个,但我不知道如何实现。如何为 data-tt-id 设置为“1”的 tr 选择所有后代?

最佳答案

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;
}

可能有更多惯用的方式来写这个,而不必在几个地方重新分配 curset = ...,但这行得通。

DEMO

关于javascript - 如何使用 jQuery/javascript 使用 Treetable 插件影响/选择所有后代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17579814/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com