在DhtmlXtree中可以用treegetLeafCount(itemId)获取节点下的子节点数,如果你想计算的是根节点下所有的子节点的话,可以先用上面的计算出根节点下的子节点数然后在有循环判断这些子节点中那个有孩子节点然后在根据treegetLeafCount(itemId)计算此节点下的字节点数,依次循环直至最后。
//传入参数:需要遍历的对象,需要匹配的id,获取所有的父级节点的Id
function findIdList(data2, id, children = 'children', level = 0) {
var arrRes = [];
let obj = {
id: 0,
[children]: data2
}
let rev = (data, id, level) => {
if (!data || !data[children] || !data[children]length) {
return;
}
for (var i = 0; i < data[children]length; i++) {
let item = data[children][i];
if (itemid == id) {
// 将匹配到的结果保存到数组
arrResunshift({ level, activeId: itemid });
// 递归它的父级
rev(obj, dataid, 0);
break;
} else if (item[children] && item[children]length > 0) {
//如果有子集,则把子集作为参数重新执行本方法
rev(item, id, level + 1);
}
}
};
rev(obj, id, level);
return arrRes;
}
let list = [
{id: 1, children: [
{id: 11, children: [{id: 12}]}
]},
{id: 2, children: [{id:21, children: [{id: 31}]}]}
]
let b = findIdList(list, 21)
consolelog(b) // [ { level: 0, activeId: 2 }, { level: 1, activeId: 21 } ]
纯js没有,不过可以自己封装。。
function getElementsByClassName(ele,className) {
//获取所有子节点
if(documentall){
var children = eleall;
}else{
var children =
elegetElementsByTagName('');
}
//遍历子节点并检查className属性
var elements
= new Array();
for (var i = 0; i < childrenlength; i++) {
var child
= children[i];
var classNames = childclassNamesplit(' ');
for (var j =
0; j < classNameslength; j++) {
if (classNames[j] == className) {
elements[elementslength] = child;
break;
}
}
}
return
elements;
}
var trees = getElementsByClassName(document,'TreeView');
以上就是关于jstree中是否提供了方法判断一个根节点有多少子节点看了参考文档貌似没有。求高手赐教全部的内容,包括:jstree中是否提供了方法判断一个根节点有多少子节点看了参考文档貌似没有。求高手赐教、JS根据子节点递归获取所有父节点的集合、js 中怎样通过class来取一个节点等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)