如何使用jQuery/javascript使用Treetable插件影响/选择所有子体
How do I affect/select all descendants with Treetable plugin using jQuery / javascript
我的一段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>
我正在使用以下选项选择具有数据tt id="1"的父对象:
$('tr[data-tt-parent-id="1"]');
但我想要所有的孩子和孩子们的孩子,不管树有多深。
正如你所看到的,数据tt id是孩子的唯一id,数据tt父id是孩子附加到的id
我曾想过循环浏览其中的每一个,但我不知道该如何实现。如何为数据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 = ...
,但这很有效。
演示
相关文章:
- 下拉选择可自动更改第二个下拉选择
- 如何使用jQuery选择下拉列表的值
- jquery点击函数select&取消选择
- Windows8应用程序(html&Javascript):从图片库(除了文件选择器)显示图像的另一种方式
- 按照选项卡索引的顺序循环一个jQuery选择
- 在动态创建的元素上获取对特定选择器的引用
- Javascript插件不应该影响所有的选择框
- 选择输入更改不会影响模型状态
- 选择选项的 JQuery 会影响页面中的所有选择选项
- 使用类选择器附加事件处理程序是否会影响该类的动态添加元素
- 如何将参数传递给将影响模板angularjs选择的指令
- Jquery对表单选择的影响
- 如何在不影响其他值的情况下使jquery ui中的日期选择器禁用sunday
- 如何使用jQuery/javascript使用Treetable插件影响/选择所有子体
- 如何阻止对选择列表的更改影响第二个选择
- JQuery似乎影响了我的css悬停选择器
- JUMflot如何重新绘制点/选择项目?尝试将项添加到数组中并在不影响原始项的情况下重新绘制它们
- 如何扭转jQuery replaceWith函数对HTML选择标记的影响
- 在一个列表框中选择“值”应影响所有其他列表框
- Jquery选择器-影响同一DOM元素中的元素