zoukankan      html  css  js  c++  java
  • write、innerHTML、createElement 三种动态创建DOM元素的区别

    <body>
        <button>点击</button>
        <p>abc</p>
        <div class="inner"></div>
        <div class="create"></div>
        <script>
            // window.onload = function() {
            //         document.write('<div>123</div>');
    
            //     }
            // 三种创建元素方式区别 
            // 1. document.write() 创建元素  如果页面文档流加载完毕,再调用这句话会导致页面重绘
            // var btn = document.querySelector('button');
            // btn.onclick = function() {
            //     document.write('<div>123</div>');
            // }
    
            // 2. innerHTML 创建元素
            var inner = document.querySelector('.inner');
            // for (var i = 0; i <= 100; i++) {
            //     inner.innerHTML += '<a href="#">百度</a>'
            // }
            var arr = [];
            for (var i = 0; i <= 100; i++) {
                arr.push('<a href="#">百度</a>');
            }
            inner.innerHTML = arr.join('');
            // 3. document.createElement() 创建元素
            var create = document.querySelector('.create');
            for (var i = 0; i <= 100; i++) {
                var a = document.createElement('a');
                create.appendChild(a);
            }
        </script>
    </body>
    

    总结:

    1. document.write 是直接将内容写入页面的内容流,但是文档流执行完毕,则它会导致页面全部重绘
    2. innerHTML 是将内容写入某个 DOM 节点,不会导致页面全部重绘
    3. innerHTML 创建多个元素效率更高(不要拼接字符串,采取数组形式拼接),结构稍微复杂
    4. createElement() 创建多个元素效率稍低一点点,但是结构更清晰
    

    总结:不同浏览器下,innerHTML 效率要比 creatElement 高

  • 相关阅读:
    sgg_3_hibernate详解
    sgg_2_hibernate开发步骤
    sgg_1_hibernate概述
    cookie
    exchange 普通用户可以创建通讯组
    DC 维护常用工具命令DCdiag
    cp 复制不覆盖
    powershell 结果输出显示为……
    获得用户完整的autodiscover配置文件
    【转】outlook 2016 配置自动发现
  • 原文地址:https://www.cnblogs.com/qingheshiguang/p/15190041.html
Copyright © 2011-2022 走看看