js 树的几个小技巧

博客展示了两个JS函数,一个用于处理树节点展开状态,根据点击节点索引获取子节点数组,并设置非点击节点为不展开;另一个用于处理树节点选中状态,根据点击节点的选中情况设置相关节点的选中状态,还会更新文本框的值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

None.giffunction s()
None.gif   {
var clickedNodeIndex=left_TreeView1.clickedNodeIndex;
None.gif   
var nodeArray=new Array();
None.gif   
var i=clickedNodeIndex.lastIndexOf('.');
None.gif   
var pIndex;
None.gif   
if(i==-1){
None.gif         nodeArray
=left_TreeView1.getChildren();
None.gif             }
None.gif     
else
None.gif{
None.gifpIndex
=clickedNodeIndex.substring(0,i);
None.gif
var pNode=left_TreeView1.getTreeNode(pIndex);
None.gifnodeArray
=pNode.getChildren();
None.gif}
None.gif
for(i=0;i<nodeArray.length;i++)
None.gif{
var index;
None.gif
if(pIndex==null)
None.gif{index 
= i + '';
None.gif}
None.gif
else
None.gif{index 
= pIndex + ';' + i;}
None.gif
var cNode;
None.gifcNode
=nodeArray[i];
None.gif
if(index!=clickedNodeIndex)
None.gif{cNode.setAttribute('Expanded',
false);}}}
None.gif
None.gif  
function GetNode()
None.gif      {
None.gif         
var choose;
None.gif         
var indexid;
None.gif         indexid
=left_TreeView1.clickedNodeIndex;
None.gif         
if (left_TreeView1.getTreeNode(indexid).getAttribute('Checked'))
None.gif          { 
None.gif            choose
=true;
None.gif           }
None.gif          
else
None.gif          { 
None.gif             choose
=false;
None.gif           }
None.gif     
None.gif     
None.gif             
var Nodelist=new Array();
None.gif            Nodelist
=left_TreeView1.getChildren();
None.gif            
for(j=0;j<Nodelist.length ;j++)
None.gif            {
None.gif 
None.gif                
if  (indexid.charAt(0)=='0|| indexid.charAt(0)=='2|| indexid.charAt(0)=='3|| indexid.charAt(0)=='1')
None.gif              {
None.gif               
None.gif               
if (j!=indexid.charAt(0)) 
None.gif                {
None.gif                    
var temp=j+'';
None.gif              
None.gif                   left_TreeView1.getTreeNode(temp).setAttribute('Checked',
false);
None.gif             
None.gif                   
var no=new Array();
None.gif                    no
=left_TreeView1.getTreeNode(temp).getChildren();
None.gif                    
for(k=0;k<no.length ;k++)
None.gif                     {
None.gif                        
var temp1=temp+'.'+k;
None.gif                        left_TreeView1.getTreeNode(temp1).setAttribute('Checked',
false);
None.gif                     }
None.gif                 }
None.gif              }
None.gif             }
None.gif                   
None.gif            
if (choose==true
None.gif            {
None.gif               
None.gif           }
None.gif              
else
None.gif            {
None.gif              
None.gif             } 
None.gif             
None.gif           
var child=indexid.charAt(0);
None.gif            
var temp3= new Array();
None.gif            temp3
=left_TreeView1.getTreeNode(child).getChildren();
None.gif              document.all.left_TextBox1.value
='';var flag_select=0 ;
None.gif              
for(l=0;l<temp3.length ;l++)
None.gif                     {
None.gif                        
var temp4=child+'.'+l;
None.gif                        
None.gif                       
if ( left_TreeView1.getTreeNode(temp4).getAttribute('Checked')==true)
None.gif                            {
None.gif                               document.all.left_TextBox1.value
= document.all.left_TextBox1.value+left_TreeView1.getTreeNode(temp4).getAttribute('NodeData')+'|';
None.gif                               flag_select
=flag_select+1;
None.gif                                
None.gif                            }
None.gif                           
if (flag_select>0)
None.gif                        
None.gif                           {  document.all.left_TextBox2.value
=indexid.charAt(0);
None.gif                         
None.gif                            } 
None.gif                          
else
None.gif                         { 
None.gif                          document.all.left_TextBox2.value
='';
None.gif                           }
None.gif                     }
None.gif
None.gif
None.gif             
var NodeArray=new Array();
None.gif             NodeArray
=left_TreeView1.getTreeNode(indexid).getChildren();
None.gif            
for(i=0;i<NodeArray.length;i++)
None.gif           {
None.gif              
var tempindex=indexid+'.'+i;
None.gif              left_TreeView1.getTreeNode(tempindex).setAttribute('Checked',choose);
None.gif              
if (choose==true)
None.gif                  {
None.gif                   document.all.left_TextBox1.value
='0';
None.gif                   document.all.left_TextBox2.value
=indexid;
None.gif                  }
None.gif             
else
None.gif                  {
None.gif                  document.all.left_TextBox1.value
='';;
None.gif                    document.all.left_TextBox2.value
='';;
None.gif                  }
None.gif              }
None.gif
None.gif
None.gif    
None.gif        }
None.gif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值