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();
            }
        })
        
        
    });
  • 相关阅读:
    关于int8_t,uint8_t.....等数据类型的理解
    导出函数__declspec(dllexport)
    c++中的namespace
    GitHub C 和 C++ 开源库的清单(含示例代码)
    进制之间的转换一
    为 JSON 字符串创建对象
    HTML5 简单Demo1
    主要浏览器的调试工具
    fiddler2抓包工具使用图文教程
    JAVA将秒的总和转换成时分秒的格式
  • 原文地址:https://www.cnblogs.com/phpyangbo/p/12802607.html
Copyright © 2011-2022 走看看