zoukankan      html  css  js  c++  java
  • 前端js递归培训内容记录

    前端js:

    var ab    =    {};
        ab[0]    =    {'id':'1','pid':'0'};
        ab[1]    =    {'id':'2','pid':'0'};
        ab[2]    =    {'id':'1.1','pid':'1'};
        ab[3]    =    {'id':'1.2','pid':'1'};
        ab[4]    =    {'id':'1.2.1','pid':'1.2'};
        ab[5]    =    {'id':'1.2.2','pid':'1.2'};
        ab[6]    =    {'id':'1.2.2.1','pid':'1.2.2'};
        
    //调用向下递归    
    //console.log(ac1(ab,'0'));
    //console.log(ac2(ab,'1',0));
    console.log(ac3(ab,'1.2.2',0));
    
    //向下递归
    function ac1(json,pid){
        var new_ab    =    {};
        for(var i in json){
            if(json[i]['pid']==pid){
                new_ab[i]    =    json[i];
                
                new_ab[i]['children']    =    ac1(json,json[i]['id']);
            }
        }
        return new_ab;
    }
    
    //向上递归
    function ac3(json,pid,zizeng){
        var new_ab    =    {};
        for(var i in json){
            if(json[i]['id']==pid){
                new_ab[i]    =    json[i];
                
                new_ab[i]['parent']    =    ac3(json,json[i]['pid'],zizeng);
            }
        }
        return new_ab;
    }
    
    //向下平级递归
    function ac2(json,pid,zizeng){
        var new_ab    =    {};
        for(var i in json){
            if(json[i]['pid']==pid){
                new_ab[zizeng]    =    json[i];
                new_ab    =    Object.assign(new_ab,ac2(json,json[i]['id'],zizeng++));
            }
        }
        return new_ab;
    }
    
    
    $(function(){
        
        //打印联动选择
        $('input[type="checkbox"]').on('click',function(){
            
            var id    =    $(this).attr('id');
            var pid    =    $(this).attr('pid');
            
            var isOn    =    $(this).is(':checked');
            if($(this).attr('click')=='true'){
                isOn    =    true;
                $(this).removeAttr('click');
            }
            if(isOn){
                
                //向上递归
                function xiangshang(pid){
                    var isEn    =    $('input[type="checkbox"][id="'+pid+'"]').size();
                    if(isEn){
                        $('input[type="checkbox"][id="'+pid+'"]').attr('checked','checked');
                        var new_pid    =    $('input[type="checkbox"][id="'+pid+'"]').attr('pid');
                        xiangshang(new_pid);
                    }
                    return false;
                }
                
                //向下递归
                function xiangxia(id){
                    var isEn    =    $('input[type="checkbox"][pid="'+id+'"]').size();
                    if(isEn){
                        for(var i=0;i<isEn;i++){
                            $('input[type="checkbox"][pid="'+id+'"]').eq(i).attr('checked','checked');
                            var new_id    =    $('input[type="checkbox"][pid="'+id+'"]').eq(i).attr('id');
                            xiangxia(new_id);
                        }
                    }
                    return false;
                }
                
                //向上递归
                xiangshang(pid);
                //向下递归
                xiangxia(id);
            }
            else{
                
            }
        });
        
        //改变值时勾选打印
        $('input[type="text"],select').on('change',function(){
            var print_id    =    $(this).attr('print_id');
            var isEn    =    $('input[type="checkbox"][id="'+print_id+'"]').is(':checked');
            if(!isEn){
                $('input[type="checkbox"][id="'+print_id+'"]').attr('click','true').click();
            }
        })
        
        
    });
  • 相关阅读:
    计算机基础
    程序的控制结构
    day 04作业
    数据类型-数据类型
    第二次作业
    第二次博客
    第一篇博客
    原生js与ajax应用
    ajax原理及其优缺点
    jQuery动画
  • 原文地址:https://www.cnblogs.com/phpyangbo/p/12802607.html
Copyright © 2011-2022 走看看