如何使用jquery获取特定级别的所有节点并为这些节点执行操作?我有一个jstree,我用json数据填充,因此无法为每个节点级别添加我自己的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级的所有节点
如果一个节点有孩子 - 改变它的图标,否则 - 什么都不做
我该怎么做? 感谢任何帮助,谢谢!
答案 0 :(得分:4)
加载树视图后,您可以使用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.
}
});
});
答案 1 :(得分:0)
使用css *
.root * { color: blue } /* first level */
.root * * { color: red } /* second level */
.root * * * { color: yellow } /* third level */
.root * * * * { color: green } /* fourth level */