• JS实现一个v-if


    // 获取dom
    var el = document.getElementById('root');
    
            console.log(el);
    // 遍历dom
            function dealNode(el) {
                var childNodes = el.childNodes;
                [].slice.call(childNodes).forEach((node)=>{
                    if(node.nodeType == 1){
                        //节点元素的属性
                        var nodeAttrs = node.attributes;
                        console.log(nodeAttrs);
                        [].slice.call(nodeAttrs).forEach((attr) => {
                            var attrName = attr.name;
                            if(isDeretive(attrName)){
                                var exp = attr.value;
                                var dir = attr.name.substring(2);
                                console.log('指令类型',dir);
                                console.log('指令的值',exp);
                                if(dir == 'if' && (exp=='false')){
                                    node.parentNode.removeChild(node);
                                }
                            }
                        });
                    }
            
                    //节点深层遍历
                    if(node.childNodes && node.childNodes.length){
                        dealNode(node);
                    }
                })
            }
            dealNode(el);
            
            function isDeretive(attr) {
                return attr.indexOf('r-') == 0;
            }
  • 相关阅读:
    一些基础的前端技术面试问题
    HTTP与HTTPS区别
    XML与JSON
    js的内置对象
    二分法查找
    img下面的留白解决
    大家好
    HEOI2020游记
    CSP-S2019游记
    省选模拟八十六 题解
  • 原文地址:https://www.cnblogs.com/Smiled/p/9317592.html
Copyright © 2020-2023  润新知