zoukankan      html  css  js  c++  java
  • JavaScript之DOM文档对象模型--对HTML元素的增删操作

    1、DOM创建节点的方法:
        document.createElement(Tag),Tag必须是合法的HTML元素;

    2、DOM复制节点的方法:
        节点.cloneNode(boolean deep),当deep为true时,表示复制当前节点以及当前节点全部后代节点。为false时,只复制当前节点。

    3、DOM添加、删除节点的方法:
        appendChild(newNode):将newNode添加成当前节点的最后一个子节点;
        insertBefore(newNode,refNode):在refNode节点之前插入newNode节点;
        replaceChild(newNode,oldNode):将oldNode节点替换成newNode节点;
        removeChild(oldNode):将oldNode子节点删除。

    例子如下:

    <!DOCTYPE html>
    <html lang="en">
        <head>
            <meta charset="utf-8">
            <title>创建元素</title>
            <script type="text/javascript">
                function create(){
                    var city=document.getElementById("city");
                    var element=document.createElement("li");
                    element.innerHTML="南京";
                    city.append(element);
                    //city.insertBefore(element, city.firstChild.nextSibling);
                    //city.replaceChild(element, city.firstChild.nextSibling);
                }
    
                function copy(){
                    var city=document.getElementById("city");
                    var element=city.firstChild.nextSibling.cloneNode(true);
                    city.append(element);
                }
    
                function del(){
                    var city=document.getElementById("city");
                    var element=city.firstChild.nextSibling;
                    city.removeChild(element);
                }
    
                /*总结:DOM对和HTML元素的增删改操作
                  1、DOM创建节点的方法:
                      document.createElement(Tag),Tag必须是合法的HTML元素;              
    
                  2、DOM复制节点的方法:
                      节点.cloneNode(boolean deep),当deep为true时,表示复制当前节点以及当前节点全部后代节点。为false时,只复制当前节点。              
    
                  3、DOM添加、删除节点的方法:
                      appendChild(newNode):将newNode添加成当前节点的最后一个子节点;
                      insertBefore(newNode,refNode):在refNode节点之前插入newNode节点;
                      replaceChild(newNode,oldNode):将oldNode节点替换成newNode节点;
                      removeChild(oldNode):将oldNode子节点删除。
                */
            </script>
        </head>
        <body>
            <ul id="city">
                <li>北京</li>
                <li>上海</li>
            </ul>
            <input type="button" value="创建复制替换节点" onclick="create()">
            <input type="button" value="复制节点" onclick="copy()">
            <input type="button" value="删除节点" onclick="del()">
        </body>
    </html>

    4、DOM为列表框、下拉菜单添加选项的方式:
        创建选项除了使用前面所示的createElement方法之外,还可以使用专门的构造器来构造一个选项出来。语法如下:
            new Option(text,value,defaultSelected,selected)

            该构造器有4个参数,说明如下:
            text:该选项的文本,即该选项所呈现的“内容”;
            value:选中该选项的值;
            defaultSelected:设置默认是否显示该选项;
            selected:设置该选项当前是否被选中。
            提示:并不是每次构造都需要指明4个参数,可以指明一个或者两个都可以,假如一个的话指明的是text,
            假如两个的话,第一个参数是text,第二个参数是value。

    5、添加创建好的选项至列表框或下拉菜单的方式:
        直接为<select.../>的指定选项赋值
            列表框或下拉菜单对象.option[i]=创建好的option对象;

    6、删除列表框、下拉菜单的选项的方法:
        (1)直接使用列表框或下拉菜单对象.remove(index)方法删除指定选项;
        (2)直接将指定选项赋值为null。
        即 列表框或下拉菜单对象.remove(index)或 对象.options[index]=null。

    <!DOCTYPE html>
    <html lang="en">
        <head>
            <meta charset="utf-8">
            <title>查找表单控件</title>
            <script type="text/javascript">
                function createSelect(){
                    var element=document.createElement("select");
                    for(var i=0;i<10;i++){
                        var op=new Option("新增的选项"+i,i);
                        element.options[i]=op;
                    }
                    element.size=5;
                    element.id="city";
                    document.getElementById("test").appendChild(element);
                }
    
                function delOneByOne(){
                    var city=document.getElementById("city");
                    if(city.options.length>0){
                        //city.remove(city.options.length-1);//方法一
                        city.options[city.options.length-1]=null;//方法二
                    }
                }
    
                function delAll(){
                    var city=document.getElementById("city");
                    if(city.options.length>0){
                        city.options.length=0;
                    }
                }
    
                /*总结:
                  4、DOM为列表框、下拉菜单添加选项的方式:
                      创建选项除了使用前面所示的createElement方法之外,还可以使用专门的构造器来构造一个选项出来。语法如下:
                          new Option(text,value,defaultSelected,selected)              
    
                          该构造器有4个参数,说明如下:
                          text:该选项的文本,即该选项所呈现的“内容”;
                          value:选中该选项的值;
                          defaultSelected:设置默认是否显示该选项;
                          selected:设置该选项当前是否被选中。
                          提示:并不是每次构造都需要指明4个参数,可以指明一个或者两个都可以,假如一个的话指明的是text,
                          假如两个的话,第一个参数是text,第二个参数是value。              
    
                  5、添加创建好的选项至列表框或下拉菜单的方式:
                      直接为<select.../>的指定选项赋值
                          列表框或下拉菜单对象.option[i]=创建好的option对象;              
    
                  6、删除列表框、下拉菜单的选项的方法:
                      (1)直接使用列表框或下拉菜单对象.remove(index)方法删除指定选项;
                      (2)直接将指定选项赋值为null。
                      即 列表框或下拉菜单对象.remove(index)或 对象.options[index]=null。
    
                */
            </script>
        </head>
        <body id="test">
            <div>
                <input type="button" value="创建一个城市列表框" onclick="createSelect()">
                <input type="button" value="一条条删除列表框内容" onclick="delOneByOne()">
                <input type="button" value="一次性清空列表框内容" onclick="delAll()">
            </div>
        </body>
    </html>

    7、DOM动态添加删除表格内容所使用的常用方法:
        insertRow(index):在指定索引位置插入一行;
        createCaption():为该表格创建标题;
        createTFoot():为该表格创建<tfoot.../>元素,假如已存在就返回现有的;
        createTHead():为该表格创建<thead.../>元素,假如已存在就返回现有的;
        deleteRow(index):删除表格中index索引处的行;
        deleteCaption():删除表格的标题;
        deleteTFoot():从表格中删除tfoot元素及其内容;
        deleteTHead():从表格中删除thead元素及其内容。

    8、给表格行创建、删除单元格的方法:
        insertCell(index):在index处创建一个单元格,返回新创建的单元格;
        deleteCell(index):删除某行在index索引处的单元格。

    <!DOCTYPE html>
    <html lang="en">
        <head>
            <meta charset="utf-8">
            <title>对表格元素进行增删改操作</title>
            <script type="text/javascript">
                function createTable(){
                    var bod=document.getElementById("test");
                    var tab=document.createElement("table");
                    tab.border="1";
                    tab.id="myTable";
                    var cap=tab.createCaption();//创建表格标题
                    cap.innerHTML="我的表格";
                    for(var i=0;i<5;i++){
                        var tr=tab.insertRow(i);//创建行
                        for(var j=0;j<4;j++){//创建列
                            var td=tr.insertCell(j);
                            td.innerHTML="单元格["+i+"]["+j+"]";
                        }
                    }
                    bod.appendChild(tab);
                }
    
                function deleteLastRow(){
                    var tab=document.getElementById("myTable");
                    if(tab.rows.length>0){
                        tab.deleteRow(tab.rows.length-1);
                    }
                }
                function deleteLastCell(){
                    var tab=document.getElementById("myTable");
                    if(tab.rows.length>0){
                        var lastRow=tab.rows[tab.rows.length-1];
                        if(lastRow.cells.length>0){
                            lastRow.deleteCell(lastRow.cells.length-1);
                        }
                    }
                }
    
                /*总结:
                  7、DOM动态添加删除表格内容所使用的常用方法:
                      insertRow(index):在指定索引位置插入一行;
                      createCaption():为该表格创建标题;
                      createTFoot():为该表格创建<tfoot.../>元素,假如已存在就返回现有的;
                      createTHead():为该表格创建<thead.../>元素,假如已存在就返回现有的;
                      deleteRow(index):删除表格中index索引处的行;
                      deleteCaption():删除表格的标题;
                      deleteTFoot():从表格中删除tfoot元素及其内容;
                      deleteTHead():从表格中删除thead元素及其内容。              
    
                  8、给表格行创建、删除单元格的方法:
                      insertCell(index):在index处创建一个单元格,返回新创建的单元格;
                      deleteCell(index):删除某行在index索引处的单元格。
                */
            </script>
        </head>
        <body id="test">
            <input type="button" value="创建一个5行4列的表格" onclick="createTable()">
            <input type="button" value="删除最后一行" onclick="deleteLastRow()">
            <input type="button" value="删除最后一个单元格" onclick="deleteLastCell()">
        </body>
    </html>
  • 相关阅读:
    RocketMq(三、重试机制)
    RocketMq(二、生产者、消费者demo)
    VUE(四、ajax-axios)
    配置git DiffMerge工具
    Gerrit 删除项目
    html元素
    UML类图细节
    json 转 javaBean
    将文件的编码格式转换为utf-8
    第四篇:Eclipse Android app 工程迁移到 Android Studio
  • 原文地址:https://www.cnblogs.com/dorra/p/7346863.html
Copyright © 2011-2022 走看看