JS节点操作

一、六种JS插入节点的方式

innerHTML、outerHTML、appendChild、insertBefore、insertAdjacentHTML、applyElement

今天介绍一下appendChild。

1.什么是节点

  HTML文档中的所有内容都是节点:

  1.整个文档时一个文档节点。

  2.每个HTML元素是元素节点。

  3.HTML元素内的文本是文本节点。

  4.每个HTML属性是属性节点。

  5.每个注释是注释节点。

 下面做一个表格,只在html里写表头,数据由js导入,并能够在单元格内编辑,删除行,添加行

<!--建立表格-->
<table>
    <tr>
        <th>年级</th>
        <th>性别</th>
        <th>姓名</th>
        <th>操作</th>
    </tr>
</table>
<button onClick="tj()">添加一行</button>
节点操作
window.onload = function (){
    //定义数组
    var tabArr = [
        [2,'男','小明'],
        [5,'女','小红'],
        [4,'女','小蓝']
    ];
    //初始化数据
    dataIn(tabArr);
}
function dataIn(aa){
    //获取表格
    var table = document.getElementsByTagName('table')[1];
    //循环给table加tr
    for(var i = 0; i < aa.length; i ++){
        //创建行
        var tr = document.createElement('tr');
        //给每行附一个标志数
        tr.setAttribute('xb',i);
        for(var j = 0; j < aa[i].length; j ++){
            //创建列
            var td = document.createElement('td');
            td.innerHTML = aa[i][j];
            //单元格添加可编辑事件
            td.setAttribute('contenteditable','true');
            tr.appendChild(td);
        }
        //创建单元格
        var td = document.createElement('td');
        //创建按钮
        var sc = document.createElement('button');
        //删除按钮添加事件
        sc.addEventListener('click',del);
        //删除添加标志数
        sc.setAttribute('xb',i);
        //按钮显示修改 删除
        sc.innerHTML = "删除";
        //按钮追加
        td.appendChild(sc);
        //单元格追加
        tr.appendChild(td);
        table.appendChild(tr);
    }
}
//删除行
function del(){
    //获取按钮的下标
    var xb = this.getAttribute('xb');
    //获取行数组
    var trArr = document.getElementsByTagName('tr');
    //循环遍历行
    for(var i = 0; i < trArr.length; i++){
        //如果行下标和删除下标相同
        if(trArr[i].getAttribute('xb') == xb){
            //删除行
            trArr[i].remove();
            break;
        }
    }
}
//添加一行
function tj(){
    //获取表格
    var table = document.getElementsByTagName('table')[1];
    //获取行
    var tr = table.getElementsByTagName('tr')[1];
    //获取列数
    var td = tr.getElementsByTagName('td');
    //创建行
    var    trDom = document.createElement('tr');
    //循环td个数 给tr加td
    for(var i = 0; i < td.length; i++){
        //创建单元格
        var tdDom = document.createElement('td');
        //单元格内容为空
        tdDom.innerHTML = ' ';
        //追加单元格
        trDom.appendChild(tdDom);
    }
    //追加行
    table.appendChild(trDom);
}
节点操作
window.onload = function (){
    var tabArr = [
        [2,'男','小明'],
        [5,'女','小红'],
        [4,'女','小蓝']
    ];
    //初始化数据
    dataIn(tabArr);
}
function dataIn(aa){
    //获取表格
    var table = document.getElementsByTagName('table')[1];
    //循环给table加tr
    for(var i = 0; i < aa.length; i ++){
        //创建行
        var tr = document.createElement('tr');
        for(var j = 0; j < aa[i].length; j ++){
            //创建列
            var td = document.createElement('td');
            //单元格里的值
            td.innerHTML = aa[i][j];
            //追加单元格
            tr.appendChild(td);
        }
        //追加行
        table.appendChild(tr);
    }
} 

一、创建节点、追加节点

1.createElement创建一个元素节点。
2.appendChild 追加一个节点。
3.createTextNode创建一个文本节点
二、删除、移除节点
1、removeChild(节点) 删除一个节点,用于移除删除一个参数(节点)。

其返回的被移除的节点,被移除的节点仍在文档中,只是文档中已没有其位置了。

三、替换节点
1、replaceChild(插入的节点,被替换的节点) ,用于替换节点,接受两个参数,

第一参数是要插入的节点,第二个是要被替换的节点。返回的是被替换的节点。

四、查找节点
1、childNodes 包含文本节点和元素节点的子节点。

单元格可编辑

 setAttribute('contenteditable','true');

追加空单元格时内容设为空,否则出现没有高度的一行。

 

posted @ 2018-04-17 00:03  ❉SSs  阅读(1428)  评论(0编辑  收藏  举报