zoukankan      html  css  js  c++  java
  • javascript 创建插入和删除DOM元素

    1、创建DOM元素

    • creatElement(标签名)  创建一个节点
    • appendChild(标签名)  追加一个节点
      • <input type="text" name="" id="txt1" />
        <input type="button" value="创建li" id="btn1" />
        <ul id="ul1">
            
        </ul>
        <script>
        var oUl = document.getElementById("ul1");
        var oBtn = document.getElementById("btn1");
        var oTxt = document.getElementById("txt1");
        oBtn.onclick = function () 
        {
            var oLi = document.createElement("li");
            oLi.innerHTML = oTxt.value;
            oUl.appendChild(oLi);  //先appendChild再设置innerHTML也可以,但是这样做浏览器的渲染就是2次了,现在这样只渲染了一次
        }
        </script>

    2、插入DOM元素

    • insertBefore(节点,原有节点)  在已有元素前插入
    <input type="text" name="" id="txt1" />
    <input type="button" value="创建li" id="btn1" />
    <ul id="ul1">
        
    </ul>
    <script>
    var oUl = document.getElementById("ul1");
    var oBtn = document.getElementById("btn1");
    var oTxt = document.getElementById("txt1");
    oBtn.onclick = function () 
    {
        var oLi = document.createElement("li");
        var aLi = oUl.getElementsByTagName("li");
        oLi.innerHTML = oTxt.value;
        //oUl.insertBefore(oLi,aLi[0]); 这里直接插入会报错,因为aLi[0]不存在
        if(aLi[0])
        {
            oUl.insertBefore(oLi,aLi[0]);
        }
        else
        {
            oUl.appendChild(oLi);
        }
    }
    </script>

    3、删除DOM元素

    • removeChild(节点)  删除一个节点
    <ul id="ul1">
        <li>12378123 <a href="#">删除</a></li>
        <li>adf <a href="#">删除</a></li>
        <li>werwer <a href="#">删除</a></li>
        <li>xcbc <a href="#">删除</a></li>
        <li>123123 <a href="#">删除</a></li>
        <li>zbfdb <a href="#">删除</a></li>
    </ul>
    <script>
    var oUl = document.getElementById("ul1");
    var aBtn = document.getElementsByTagName("a");
    for(var i=0; i<aBtn.length; i++)
    {
        aBtn[i].onclick = function () 
        {
            oUl.removeChild(this.parentNode);
        }
    }
    </script>

    4、文档碎片

    当创建大量的节点的时候,可以使用文档碎片。

    文档碎片可以提高DOM操作性能(理论上)

    document.createDocumentFragment();

  • 相关阅读:
    头条前端笔试最后一道题
    Node读取和写入json,格式化输出json
    CSS中的未定义行为,浏览器的差异(一)
    18.2.28阿里前端实习生内推面补坑
    18.2.26深信服Web实习生补坑(已拿到offer)
    MySQL Parameter '?…' has already been defined 是什么问题
    C# List<T>的 Find方法、FindLast方法、FindAll方法、FindIndex方法
    C# 对List<T>进行排序
    SQL里 asc和desc的意思
    Visual Studio同步的时候显示 team foundation 错误 系统找不到指定文件夹
  • 原文地址:https://www.cnblogs.com/qiangspecial/p/2984615.html
Copyright © 2011-2022 走看看