JS节点操作 (表格在js中添加行和单元格,并有一个删除键)

JS节点操作

 1 <div id="div">
 2     <table id="tab">
 3         <tr>
 4             <th>编号</th>
 5             <th>姓名</th>
 6             <th>性别</th>
 7             <th>年龄</th>
 8         </tr>
 9     </table>
10 </div>
html内容  表格在js中添加行和单元格,并有一个删除键

 

window.onload = function(){
    var data = [
        [1,"王保利","男","10"],
        [2,"向兆泽","男","11"],
        [3,"李清坤","男","12"],
        [4,"陈鹏","男","33"]
    ];
    //初始化数据  把数据库的数据输出到页面上
    initData(data);
    
    //添加事件    添加一行
    var addBtnDom = document.getElementById('btn');
    addBtnDom.addEventListener('click',addElement);
};
//运行添加一行函数
function addElement(){
//    找到table
    var tab = document.getElementById('tab');
//添加一行                 添加节点
    var trDom = document.createElement('tr');    
//一共有5个单元个所以循环五次
    for(var i=0 ; i<5; i++){
//     每循环一次添加一个单元格
        var tdDom = document.createElement('td');
//单元格的内容为空
        tdDom.innerHTML =  " ";
//把td放到tr里面
        trDom.appendChild(tdDom);
    }
//把tr放到table里
    tab.appendChild(trDom);
}


/*
功能:用来把数据库中的数据放到页面上显示
    数据是二维数组[【编号,姓名,性别,年龄】,...]
参数:无
返回:无
*/
//运行页面加载完成后给的函数
function initData(dd){
//    找到table
    var tab = document.getElementById('tab');
    //有多少tr呢  dd.length 
    for(var i=0 ; i<dd.length; i++){
//        每循环一次在table里追加一行  tr
        var trDom = document.createElement('tr');    
//       每次添加tr时给tr添加一个标记   在下面运行删除时会用到
        trDom.setAttribute('num',i);
        //有多少td呢  dd[i].length
        for(var j=0 ; j<dd[i].length; j++){
//            每次循环添加一个td
            var tdDom = document.createElement('td');
//    把添加的td输出到页面上       dd[i][j] =  dd数组中二维数组的下标i一维数组的j下标的位置
            tdDom.innerHTML = dd[i][j];
//        把td添加到tr中
            trDom.appendChild(tdDom);
        }
//        在大循环中每次添加一个td。。  修改删除所在的单元格
        var tdDom = document.createElement('td');
//        每次添加单元格事,在单元格中添加一个按钮
        var btnModDom = document.createElement('button');
//       按钮的内容是修改
        btnModDom.innerHTML= '修改';
//        按钮的颜色是红色
        btnModDom.style.color='red';
//        把按钮添加到td里
        tdDom.appendChild(btnModDom);
//        每次添加单元格事,在单元格中添加一个按钮        
        var btnModDom = document.createElement('button');
//       按钮的内容是删除
        btnModDom.innerHTML= '删除';
//     给删除添加一个删除事件
        btnModDom.setAttribute('onClick','delThis(this)');
//     并给这个按钮添加一个标记删除时可以用到
        btnModDom.setAttribute('num',i);
//        btnModDom.addEventListener('click',show);
//       每次循环都把按钮追加到单元格
        tdDom.appendChild(btnModDom);
//        把td添加到tr里
        trDom.appendChild(tdDom);
        //把tr追加到table里面
        tab.appendChild(trDom);
    }
}
//运行delthis   删除事件
function delThis(obj){
//    找到传过来的这个元素的num值
//    obj.getAttribute('num');
//找到所有的行,  tr
//    var trArr = document.getElementsByTagName('tr');
//   循环所有的tr
//    for(var i=0 ; i<trArr.length; i++){
//        如果得到的这个元素的num和循环出来的值的num相等
//        if(trArr[i].getAttribute('num') == obj.getAttribute('num')){
//    就删除这个行
//            trArr[i].remove();
//    结束循环
//            break;
//        }
//    }   找到元素的父标签td的父标签tr然后删除掉
    console.log(obj.parentElement.parentElement.parentElement.remove());
}
js内容

 

 

 

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

innerHTML、outerHTML、appendChild、insertBefore、insertAdjacentHTML、applyElement

今天介绍一下appendChild。

1.什么是节点

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

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

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

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

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

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

 

 

一、创建节点、追加节点

 

1.createElement创建一个元素节点。
2.appendChild 追加一个节点。
3.createTextNode创建一个文本节点。
二、删除、移除节点
1、removeChild(节点) 删除一个节点,用于移除删除一个参数(节点)。其返回的被移除的节点,被移除的节点仍在文档中,只是文档中已没有其位置了。

 

三、替换节点
1、replaceChild(插入的节点,被替换的节点) ,用于替换节点,接受两个参数,第一参数是要插入的节点,第二个是要被替换的节点。返回的是被替换的节点。

 

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

 

转载于:https://www.cnblogs.com/baobaoa/p/8868129.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值