感觉答案不对啊。

来源:9-9 访问子节点的第一和最后项

再码一段

2017-03-24 20:36

参考代码:

function addOne(obj){ 

   var tbody = document.getElementById('table').lastChild;  

var tr = document.createElement('tr');  //tr节点

 

var td = document.createElement("td");

td.innerHTML = "<input type='text'/>";

tr.appendChild(td);

 

td = document.createElement("td");  

td.innerHTML = "<input type='text'/>";

tr.appendChild(td);

 

td = document.createElement("td");

td.innerHTML = "<a href='javascript:;' onclick='deleteRow(this)'>删除</a>";

tr.appendChild(td);   

 

tbody.appendChild(tr);   

Highlight();

    }


问题:

tbody.appendChild(tr);    //父节点对象.appendChild(要插入的子节点对象);

但是上面父节点对象的定义:

   var tbody = document.getElementById('table').lastChild;  //tabody=table节点的最后一个子节点

再看tbody.appendChild(tr);//按上面定义的tbody来看,tbody并不是tr的父节点,toody就是tr最后一项。

这不是矛盾了吗?教材里说必须是   父节点对象.appendChild(要插入的子节点);



关于appendChild,摘自教材。

插入节点appendChild()

在指定节点的最后一个子节点列表之后添加一个新的子节点。

语法:

appendChild(newnode)

参数:

newnode:指定追加的节点。


写回答 关注

1回答

  • 陳吉吉
    2017-03-25 17:26:12

    用childNodes来看整个table的子节点就知道这个table的lastChild是什么了

    var oTable = document.getElementById("table");

    console.log(oTable.childNodes);

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

467397 学习 · 21877 问题

查看课程

相似问题