获取某层JsTree的所有节点Jquery
Get all nodes at a certain level JsTree Jquery
如何使用 jquery 获取特定级别的所有节点并为这些节点执行操作?我有一个用 json 数据填充的 jstree,因此不可能为每个节点级别添加我自己的 ID。
比如我要获取第3层的所有节点:
Root
A1
1
2
3
数字 1、2、3 将是 3 级节点。我只想更改 3 级节点的图标。现在我可以使用以下内容更改所有节点图标:
a>.jstree-icon
{
background-image: url("content/img/usersmallclipart.png")!important;
background-position: 0!important;
}
我想使用 jquery 获取级别 3 的所有节点,并使用 .css() 在满足特定上下文时更改图标(这就是我需要的原因使用 jquery 而不是简单地更深入地使用我的 css 风格。
所以伪代码如下:
获取第3级的所有节点
如果节点有子节点 - 更改它的图标,否则 - 什么都不做
我该怎么做?
感谢任何帮助,谢谢!
使用 css *
的通配符选择器
.root * { color: blue } /* first level */
.root * * { color: red } /* second level */
.root * * * { color: yellow } /* third level */
.root * * * * { color: green } /* fourth level */
加载树视图后,您可以使用 jQuery 遍历每个节点并根据节点级别应用 css。例如,一旦 jstree 加载树视图,您可以尝试以下操作:
$("#myTree").bind('ready.jstree', function (event, data) {
var $tree = $(this);
$($tree.jstree().get_json($tree, {
flat: true
})).each(function () {
// Get the level of the node
var level = $("#myTree").jstree().get_node(this.id).parents.length;
var node;
if (level == 3) {
// node = ... apply desired css to the node here if it has children.
}
});
});
如何使用 jquery 获取特定级别的所有节点并为这些节点执行操作?我有一个用 json 数据填充的 jstree,因此不可能为每个节点级别添加我自己的 ID。
比如我要获取第3层的所有节点:
Root
A1
1
2
3
数字 1、2、3 将是 3 级节点。我只想更改 3 级节点的图标。现在我可以使用以下内容更改所有节点图标:
a>.jstree-icon
{
background-image: url("content/img/usersmallclipart.png")!important;
background-position: 0!important;
}
我想使用 jquery 获取级别 3 的所有节点,并使用 .css() 在满足特定上下文时更改图标(这就是我需要的原因使用 jquery 而不是简单地更深入地使用我的 css 风格。
所以伪代码如下:
获取第3级的所有节点
如果节点有子节点 - 更改它的图标,否则 - 什么都不做
我该怎么做? 感谢任何帮助,谢谢!
使用 css *
.root * { color: blue } /* first level */
.root * * { color: red } /* second level */
.root * * * { color: yellow } /* third level */
.root * * * * { color: green } /* fourth level */
加载树视图后,您可以使用 jQuery 遍历每个节点并根据节点级别应用 css。例如,一旦 jstree 加载树视图,您可以尝试以下操作:
$("#myTree").bind('ready.jstree', function (event, data) {
var $tree = $(this);
$($tree.jstree().get_json($tree, {
flat: true
})).each(function () {
// Get the level of the node
var level = $("#myTree").jstree().get_node(this.id).parents.length;
var node;
if (level == 3) {
// node = ... apply desired css to the node here if it has children.
}
});
});