zoukankan      html  css  js  c++  java
  • 3_3:创建 元素节点

    一  向文档流写入内容  document.write() 

    1)基本语法

    document.write('text'); //不常用 了解就可以
    需要向文档中写入内容,所以,若在一个已关闭(例如,已完成加载)的文档上调用 document.write,就会自动调用 document.open,这将清空该文档的内容 

    2)代码验证

    <button id="btn">按钮</button>
    <script>
        var btn = document.getElementById('btn');
        btn.addEventListener('click', function () {
            document.write('<div>123</div>')
        })
    </script>
     按钮没有点击前的DOM结构
    点击按钮后 页面被重新绘制 以前的元素都没有了

    element.innerHtml

    1)效率比较

    //字符串拼接
    function countTime() {
        var startTime = +new Date();
        for (var i = 0; i < 1000; i++) {
            document.body.innerHTML += "<a href = '#'>百度</a>";
        }
        var endTime = +new Date();
        console.log(endTime - startTime);
    }
    countTime();//用时 1061 毫秒
    
    //数组拼接
    function countTime() {
        var startTime = +new Date();
        var arr = [];//声明空数组
        for (var i = 0; i < 1000; i++) {
    
            arr.push("<a href = '#'>百度</a>");
        }
        document.body.innerHTML = arr.join();
        var endTime = +new Date();
        console.log(endTime - startTime);
    }
    countTime();//用时 3 毫秒

    2)注意事项

    // 是将内容写入某个 DOM 节点 不会导致页面重绘
    // 赋值节点的时候,不会赋值原先节点的事件 会存在内存泄漏

    三 document.createElement()

    1)基本语法

    document.createElement()//元素节点 [ 最常用 ]
    document.createAttribute() // 属性节点
     document.createTextNode()// 文本节点  
    document.createComment()// 注释节点
    nodeList = document.getElementsByName(name); //返回对象集合
    注:name参数在XHTML中使用

    2)执行效率

    function countTime() {
        var startTime = +new Date();
        for (var i = 0; i < 1000; i++) {
            var div = document.createElement('div');
            div.style.width = '100px';
            div.style.height = '2px';
            div.style.border = '1px solid red';
            document.body.appendChild(div);
        }
        var endTime = +new Date();
        console.log(endTime - startTime);
    }
    countTime();//用时7毫秒

    二者的区别

    // . 创建元素多 用 innerHtml 效率更高 ( 不要用拼接字符串 采取数组形式拼接 )
    
    // . 创建元素少 用createElement()

    总结:innerHTML 用数组的形式 效率比createElement()高
  • 相关阅读:
    With great power comes great responsibility
    2016年你应该学习的语言和框架
    箜篌长萧各一曲,月清淡似风人未眠。
    使用 RUP 管理小型项目和团队
    php文件加锁 lock_sh ,lock_ex
    PHP_EOL
    PHP输入流php://input介绍
    获取ip地址
    关键词拍卖和广义二阶拍卖(Internet Advertising and the Generalized Second-Price Auction译文)
    常用js选择
  • 原文地址:https://www.cnblogs.com/fuyunlin/p/14435423.html
Copyright © 2011-2022 走看看