• 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();

  • 相关阅读:
    (转)在WPF中自定义控件 CustomControl (下)注意TemplatePartAttribute
    [STAThread]的含义
    Exception of Storyboard in controlTemplate,can't use binding or dynamic resource
    What is the difference between CollectionView and CollectionViewSource?
    EssentialWPF_chapter6_Data
    WPF 调试方法, WPF Debug
    System.Windows.Markup.ContentPropertyAttribute
    Layout相关
    When use registerReadonly
    注意:匿名事件处理函数
  • 原文地址:https://www.cnblogs.com/qiangspecial/p/2984615.html
Copyright © 2020-2023  润新知