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');

追加空單元格時內容設為空,否則出現沒有高度的一行。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM