美文网首页js 世界
js DOM中三种动态创建元素的区别

js DOM中三种动态创建元素的区别

作者: 前端末晨曦吖 | 来源:发表于2022-07-21 20:56 被阅读0次

    document.write()

    直接将内容写入页面的内容流, 但是文档执行完毕,  则会导致页面的全部重绘。
    

    具体用法:

     <body>
      <button>点击事件</button>
      <p>abc</p>
      <script>
        // 三种创建元素的方式区别:
        var btn = document.querySelect('button');
        btn.onClick = function() {
          document.write('<div>123</div>')
        }
      </script>
     </body>
    

    innerHTML

    是将内容写入DOM  某个节点,  不会导致页面的重绘。
    innerHTML  创建多个效率更高, 结构稍微复杂。
    不同浏览器下,  innerHTML 效率要比createdElement 高
    
    <script>
      function fn() {
        var d1 = +newDate();
        var str = "";
        for(var i= 0; i< 1000; i++) {
           document.body.innerHTML += "<div style = "width: 100px; height: 2px; border: 1px solid blue"></div>"
        }
        var d2 = +new Date();
        console.log(d2 - d1);
      }
    </script>
    

    document.createElement()

    创建多个元素效率稍微低一些,  但是结构更加清晰。
    
    <script>
        function fn () {
           var d1 = +new Date();
           for(var i = 0; i<1000; i++) {
             var div = document.createdElement('div');
             div.style.width = "100px";
             div.style.height = "2px"
             div.style.border = "1px solid red";
             document.body.appendChild(div)
           }
     
           var d2 = +new Date();
           console.log(d2 - d1);
        }
     </script>
    

    相关文章

      网友评论

        本文标题:js DOM中三种动态创建元素的区别

        本文链接:https://www.haomeiwen.com/subject/nurpirtx.html