参考代码:
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:指定追加的节点。
用childNodes来看整个table的子节点就知道这个table的lastChild是什么了
var oTable = document.getElementById("table");
console.log(oTable.childNodes);