算法题:输出DOM结构

console.log(output(document.documentElement))

function output(el) {
    let result_list = []
    do_output(el, 0, result_list)
    return result_list.join('\n');
}

function do_output(el, level, result_list) {
    if (el) {
        result_list.push(format(el.tagName, level));

        if (el.children) {
            for (let i = 0; i < el.children.length; i++) {
                do_output(el.children[i], level + 1, result_list);
            }
        }
    }
}

function format(str, level) {
    let result = '';

    for (let i = 0; i < level; i++) {
        result += ' ';
    }

    return result + str;
}
// 输出DOM结构
var str = '';
var el = document.documentElement;
var empty;
var level = 0;

function output(el, level) {
    if (el) {
        if (level > 0) {
            empty = new Array(level).fill(' ');
            str += empty.join('');
        }
        str += el.tagName;
        str += '\n'; // 换行
    }
    if (el.children) {
        for(let i = 0; i < el.children.length; i++) {
            output(el.children[i], level+1);
        }
    }
}

output(el, level);
console.log(str)

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值