节点操作

**

父节点:

**
node.parentNode:
得到的是该元素的父亲节点(离元素最近的父元素),如果找不到返回null
**

子节点:

**
(1)node.childNodes
得到的是该元素的所有孩子(包含文本节点,元素节点,换行,空格等),为集合
由于得到的是所有的内容,我们要想得到我们想要的元素节点,我们需要写一个判断程序进行选择,通过nodeype判断节点的类型,元素节点的类型为1,文本节点的类型为3
(2)node.children
这个可以得到所有的元素节点,也是一个集合,这个得到的为我们需要的,不包含换行,空格等文本节点
3)第一个子元素firstChild
node.firstChild;
可以得到第一个子元素
(4)最后一个子元素lastChild
node,lastChild;
得到最后一个子元素
**

创建节点:

**
document.createElement(节点);

添加节点:

(1)在最后添加节点(相当于追加)
父元素.appendchild(节点)
(2)在开头添加元素:

删除节点:

node.removeChild(child);//删除父节点中的字节点

综合案例:
动态生成表格
案例主要实现思路:
属性需要存在一个数组中,数组元素为对象;

1、首先创建并添加tbody中的tr行:
创建是使用了 document.createElement(‘tr’); 添加在tbody中: tbody.appendChild(tr)。
创建思路为:
数组中有几个元素就创建几个tr,数组的元素个数我们可以通过数组的长度获取(length),在创建的过程中,我们需要通过数组的遍历进行创建,遍历一个数组元素,就创建一个。代码如下:

var tbody = document.querySelector('tbody');
for (var i = 0; i < datas.length; i++) {
var tr = document.createElement('tr');
tbody.appendChild(tr);

2、在创建的tr中创建列(td):
列的个数取决于数组元素每个对象的属性个数,所以我们需要对对象进行遍历利用for(var k in obj){},这个循环就是对对象进行遍历,遍历一个对象的属性,就创建一个td,然后,得到对象的属性值,将属性值利用innerHTML进行对元素进行文本的赋值,代码如下:

for(var k in batas[i]) {
var td = document.createrElement('td');//创建td
td.innerHTML = datas[i][k];//将属性值赋予td;
tr.appendChild(td);//添加tr

}

3、单独创建删除单元格:

var td = document.createElement('td');
td.innerHTML = "<a herf = 'javascript:;>删除</a>'";
tr.appendChild(td);

4、实现删除的功能:

点击删除,将删除整行进行删除,首先得到所以的a链接元素,对a链接数组进行遍历,遍历一次进行删除,代码实现:

var as = document,querySelecyorAll('a');
for(var i = 0;i < as.length; i++) {
as[i].onclick = function() {
tbody.removeChild(this.parentNode.parentVNode);//这里我们要删除的是整行,

所以整行就可以写为this.parentNode.parentNode,由于a的父亲为td,td为一个单元格而我们要删除的是tr一整行,所以为td的父亲,则得出了这样一个写法。
}
}
案例的完整代码:

<script>
        //1、存数据,由于对象中存在多个属性值,所以我们利用建立对象的方式存储数据,存入的数据有可能是多个,所以我们用数组
        var datas = [
            {
                name: '小明',
                subject: 'javascript',
                scoer: 100
            },
            {
                name: '小红',
                subject: 'javascript',
                scoer: 56
            },
            {
                name: '小冈',
                subject: 'javascript',
                scoer: 76
            },
            {
                name: '小明',
                subject: 'javascript',
                scoer: 88
            },
        ];
        //2、创建行,新建的对象数组中有几个就新建几行,获取数组中的元素个数,我们采取length
        var tbody = document.querySelector('tbody');//获取元素,要往tbody中添加元素,首先就要进行获取元素
        for (var i = 0; i < datas.length; i++) {//这个循环是遍历datas数组,遍历一个创建一个行tr
            var tr = document.createElement('tr');//创建行tr
            tbody.appendChild(tr);//添加行
            //下面一步创建列td,一行有几个取决与对象中有几个对象,所以我们要进行遍历对象,遍历对象我们for(var k in obj)
            for (var k in datas[i]) {
                var td = document.createElement('td');//创建单元格
                td.innerHTML = datas[i][k];
                tr.appendChild(td);//添加创建的td,往tr中
            }
            //3、单独创建删除
            var td = document.createElement('td');
            td.innerHTML = '<a href = "javascript:;">删除</a>';
            tr.appendChild(td);
        }
        //4、使删除按钮实现其功能
        var as = document.querySelectorAll('a');//首先获取所有的a元素
        for (var i = 0; i < as.length; i++) {
            as[i].onclick = function () {
                tbody.removeChild(this.parentNode.parentNode);
            }
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值