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 高

  • 相关阅读:
    第四次作业
    第三次
    第十次作业
    第九次作业
    第八次作业
    10.29第七次
    15
    14
    13 this
    12 电视机
  • 原文地址:https://www.cnblogs.com/qingheshiguang/p/15190041.html
Copyright © 2011-2022 走看看