急 在线等 遍历TreeView 获取所有节点

急 在线等 遍历TreeView 获取所有节点,第1张

TreeView的数据存储格式一般如下:

节点编号,节点名称,节点值,上级节点编号)

遍历TreeView一般用递归算法

public void LoadTree(TreeNode tn)

{

if(tn == null) //加载根节点

{

//从数据库获取上级节点编号=0的DataSet

foreach(DataRow dr in dsTables[0]Rows)

{

TreeNode newNode=new TreeNode(dr["节点名称"] , dr["节点编号"]);

tnNodesAdd(newNode);

LoadTree(newNode);//递归

}

}

else

{

//获取当前节点的下一层节点DataSet

foreach(DataRow dr in dsTables[0]Rows)

{

TreeNode newNode=new TreeNode(dr["节点名称"] , dr["节点编号"]);

tnNodesAdd(newNode);

LoadTree(newNode);//递归

}

}

}

获取所有的子节点

1 children 获取所有的元素子节点,不包含文本节点,这个没有兼容问题,推荐使用

2 childNodes 对于不同版本的IE浏览器有兼容问题:

IE9+: 获取除了元素子节点,还有文本节点(包含换行),注释节点,非法节点(ul下包含p)

IE8-:获取所有的元素子节点,(IE8可以获取非法节点)

获取第一个子节点

1 firstChild: childNodes[0] ,跟childNodes的情况类似

2 children[0] 推荐使用

3 firstElementChild:IE9+才有的属性

4 兼容写法: elemfirstElementChild || elemfirstChild; 这个也会有点问题,如果没有子元素节点时需要判断

获取下一个节点

1 nextSibling:跟childNodes类似

2 nextElementSibling:IE9+才有的属性

3 兼容写法: elemnextElementSibling || elemnextSibling; 这个的问题是,当前元素是最后一个元素的时候需要判断

获取上一个节点

1 previousSibling

2 previousElementSibling

React提供的获取DOM元素的方法有两种,一是react-dom中的findDOMNode(),二是refs。

findDOMNode通常用于React组件的引用,其语法如下:

当组件被渲染到DOM中后,findDOMNode会返回该组件实例对应的DOM节点。

示例:

注:如果render()中返回null,那么findDOMNode()也返回null。findDOMNode只对已经挂载的组件有效。

refs多用于React组件内子组件的引用。使用ref获取DOM节点有两种情况:

(1)子组件为原生DOM组件:获取到的就是这个DOM节点。如下例,thisinput就获取到了当前 <input /> 节点。

通过thismyInput,我就可以对 <input /> 进行一系列 *** 作,比如让输入框聚焦:

注:refs也支持字符串格式:

通过thisrefsmyInput获取到节点。

(2)子组件为React组件,比如 <MyInput/> :获得的就是 <MyInput/> 的实例,因此就可以调用 <MyInput/> 的实例方法。

示例:

注:调用 <Comp /> 实例方法的方式:thisrefsmyCompmethod(),但并不建议这种调用方式。

bootstrap-treeview 有自带getChecked方法,可以返回所有checked的节点,源代码有次方法,可能开发者忘记写在github的说明上了treetreeview('getChecked');

以上就是关于急 在线等 遍历TreeView 获取所有节点全部的内容,包括:急 在线等 遍历TreeView 获取所有节点、IE9+获取节点的方式有兼容性要求、React中获取DOM节点的两种方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9666426.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存